Skip to content
Heist/ feed
Back to feed
HighFix available

neigh: let neigh_xmit take skb ownership

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: neigh: let neigh_xmit take skb ownership neigh_xmit always releases the skb, except when no neighbour table is found. But even the first added user of neigh_xmit (mpls) relied on neigh_xmit to release the skb (or queue it for tx). sashiko reported: If neigh_xmit() is called with an uninitialized neighbor table (for example, NEIGH_ND_TABLE when IPv6 is disabled), it returns -EAFNOSUPPORT and bypasses its internal out_kfree_skb error path. Because the return value of neigh_xmit() is ignored here, does this leak the SKB? Assume full ownership and remove the last code path that doesn't xmit or free skb.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.1.175, 6.12.91, 6.18.33, 6.6.141, 7.0.10
CVEs
CVE-2026-52981
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 03:07 UTC · Revision 1

Source evidence

neigh: let neigh_xmit take skb ownership

core-osv · Original source

Published 24 Jun 2026, 16:28 UTC

In the Linux kernel, the following vulnerability has been resolved: neigh: let neigh_xmit take skb ownership neigh_xmit always releases the skb, except when no neighbour table is found. But even the first added user of neigh_xmit (mpls) relied on neigh_xmit to release the skb (or queue it for tx). sashiko reported: If neigh_xmit() is called with an uninitialized neighbor table (for example, NEIGH_ND_TABLE when IPv6 is disabled), it returns -EAFNOSUPPORT and bypasses its internal out_kfree_skb error path. Because the return value of neigh_xmit() is ignored here, does this leak the SKB? Assume full ownership and remove the last code path that doesn't xmit or free skb.

osv:CVE-2026-52981

Kernel

Fixed versions: 6.1.175, 6.6.141, 6.12.91, 6.18.33, 7.0.10

Complete source record
{
  "id": "80c145d471640ff872f5f6689fa26c556704c75771fa175fc67eae7d3d5d318c",
  "url": "https://osv.dev/vulnerability/CVE-2026-52981",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "neigh: let neigh_xmit take skb ownership",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: neigh: let neigh_xmit take skb ownership neigh_xmit always releases the skb, except when no neighbour table is found. But even the first added user of neigh_xmit (mpls) relied on neigh_xmit to release the skb (or queue it for tx). sashiko reported: If neigh_xmit() is called with an uninitialized neighbor table (for example, NEIGH_ND_TABLE when IPv6 is disabled), it returns -EAFNOSUPPORT and bypasses its internal out_kfree_skb error path. Because the return value of neigh_xmit() is ignored here, does this leak the SKB? Assume full ownership and remove the last code path that doesn't xmit or free skb.",
    "evidence": "osv:CVE-2026-52981",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.1.175",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.141",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.91",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.33",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.0.10",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-52981",
      "aliases": [
        "CVE-2026-52981"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "4fd3d7d9e868ffbdb0e7a67c5c8e9dfdcd846a62"
                },
                {
                  "fixed": "8a89054a1ec0767aec25ed2bbac933da6ba3cf5a"
                },
                {
                  "fixed": "9247d59ca15bf60a57dca08103f055d8a4340877"
                },
                {
                  "fixed": "0084712e0bee204b284510cdb63182fd5a30c2b7"
                },
                {
                  "fixed": "63063ba60d2dc334e34f1e3f9271d7f3f6f30307"
                },
                {
                  "fixed": "445e45a2c3a078316a62d2d331a570cf34ef5079"
                },
                {
                  "fixed": "4438113be604ee67a7bf4f81da6e1cca41332ce4"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52981.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.1.0"
                },
                {
                  "fixed": "6.1.175"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.141"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.91"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.33"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.0.10"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52981.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.184090804Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/0084712e0bee204b284510cdb63182fd5a30c2b7",
        "https://git.kernel.org/stable/c/4438113be604ee67a7bf4f81da6e1cca41332ce4",
        "https://git.kernel.org/stable/c/445e45a2c3a078316a62d2d331a570cf34ef5079",
        "https://git.kernel.org/stable/c/63063ba60d2dc334e34f1e3f9271d7f3f6f30307",
        "https://git.kernel.org/stable/c/8a89054a1ec0767aec25ed2bbac933da6ba3cf5a",
        "https://git.kernel.org/stable/c/9247d59ca15bf60a57dca08103f055d8a4340877",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52981.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-52981",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52981.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-52981",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517625,
  "published_at": "2026-06-24T16:28:57.074+00:00"
}