Skip to content
Heist/ feed
Back to feed
HighFix available

batman-adv: fix stale receive device on merged fragments

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: batman-adv: fix stale receive device on merged fragments Fragment reassembly reuses the skb from the highest-numbered buffered fragment as the merged packet. When that fragment was received on a hard interface which is deleted before the chain completes, the merged skb can re-enter the receive path with a stale skb->dev and skb_iif. batadv_batman_skb_recv() passes such merged packets through the normal receive handlers again. DAT and bridge loop avoidance both derive the ARP header length from skb->dev, so they can dereference the freed net_device before the packet reaches the local mesh interface. Refresh the receive device metadata from the current receive device before running the packet handlers. This keeps internally reinjected merged fragments consistent with the normal receive path after hard interface teardown.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.270, 5.15.221, 6.1.188, 6.12.110, 6.18.51, 6.6.157, 7.2.5
CVEs
CVE-2026-89951
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 00:22 UTC · Revision 1

Source evidence

batman-adv: fix stale receive device on merged fragments

core-osv · Original source

Published 16 Sept 2026, 10:32 UTC

In the Linux kernel, the following vulnerability has been resolved: batman-adv: fix stale receive device on merged fragments Fragment reassembly reuses the skb from the highest-numbered buffered fragment as the merged packet. When that fragment was received on a hard interface which is deleted before the chain completes, the merged skb can re-enter the receive path with a stale skb->dev and skb_iif. batadv_batman_skb_recv() passes such merged packets through the normal receive handlers again. DAT and bridge loop avoidance both derive the ARP header length from skb->dev, so they can dereference the freed net_device before the packet reaches the local mesh interface. Refresh the receive device metadata from the current receive device before running the packet handlers. This keeps internally reinjected merged fragments consistent with the normal receive path after hard interface teardown.

osv:CVE-2026-89951

Kernel

Fixed versions: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.51, 7.2.5

Complete source record
{
  "id": "d2d21e44a16ab80f0de5dbe40853142be3c5f23408038dc62e6a205596451b92",
  "url": "https://osv.dev/vulnerability/CVE-2026-89951",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "batman-adv: fix stale receive device on merged fragments",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: batman-adv: fix stale receive device on merged fragments Fragment reassembly reuses the skb from the highest-numbered buffered fragment as the merged packet. When that fragment was received on a hard interface which is deleted before the chain completes, the merged skb can re-enter the receive path with a stale skb->dev and skb_iif. batadv_batman_skb_recv() passes such merged packets through the normal receive handlers again. DAT and bridge loop avoidance both derive the ARP header length from skb->dev, so they can dereference the freed net_device before the packet reaches the local mesh interface. Refresh the receive device metadata from the current receive device before running the packet handlers. This keeps internally reinjected merged fragments consistent with the normal receive path after hard interface teardown.",
    "evidence": "osv:CVE-2026-89951",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.270",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.221",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.188",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.157",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.110",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.51",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.5",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-89951",
      "aliases": [
        "CVE-2026-89951"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "610bfc6bc99bc83680d190ebc69359a05fc7f605"
                },
                {
                  "fixed": "63d86250fa7cbe22451369bd1c0881dfc8190958"
                },
                {
                  "fixed": "f830c2dfc1431764db9256b3d5db1695fc9a7f56"
                },
                {
                  "fixed": "f4b4ae763b5d59319fad62a00c76676758e7dafa"
                },
                {
                  "fixed": "6df64825f8b199921120c685af2abca14b077331"
                },
                {
                  "fixed": "a2c272da99c2077088083c14961cf2f1e4506995"
                },
                {
                  "fixed": "e91d2cc7441d89a45bad73ad9789159c7441cb80"
                },
                {
                  "fixed": "2dffc8c44b6e3347b3719c6419c07b4a18fea895"
                },
                {
                  "fixed": "ad46c907d7d9975a285c1e89a4adde652eaa93f5"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89951.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.13.0"
                },
                {
                  "fixed": "5.10.270"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.221"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.188"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.157"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.110"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.51"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.5"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89951.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:45.384085089Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/2dffc8c44b6e3347b3719c6419c07b4a18fea895",
        "https://git.kernel.org/stable/c/63d86250fa7cbe22451369bd1c0881dfc8190958",
        "https://git.kernel.org/stable/c/6df64825f8b199921120c685af2abca14b077331",
        "https://git.kernel.org/stable/c/a2c272da99c2077088083c14961cf2f1e4506995",
        "https://git.kernel.org/stable/c/ad46c907d7d9975a285c1e89a4adde652eaa93f5",
        "https://git.kernel.org/stable/c/e91d2cc7441d89a45bad73ad9789159c7441cb80",
        "https://git.kernel.org/stable/c/f4b4ae763b5d59319fad62a00c76676758e7dafa",
        "https://git.kernel.org/stable/c/f830c2dfc1431764db9256b3d5db1695fc9a7f56",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89951.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-89951",
        "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/89xxx/CVE-2026-89951.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-89951",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 513447,
  "published_at": "2026-09-16T10:32:36.179+00:00"
}