CVE-2026-72493 (GCVE-0-2026-72493)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:57 – Updated: 2026-08-17 05:44
VLAI
Title
net: serialize netif_running() check in enqueue_to_backlog()
Summary
In the Linux kernel, the following vulnerability has been resolved: net: serialize netif_running() check in enqueue_to_backlog() Syzbot reported a KASAN slab-use-after-free in fib_rules_lookup(). The root cause is a race condition where packets can escape the backlog flushing during device unregistration (e.g., during netns exit). Commit e9e4dd3267d0 ("net: do not process device backlog during unregistration") introduced a lockless netif_running() check in enqueue_to_backlog() to prevent queuing packets to an unregistering device. However, this creates a TOCTOU race window. A lockless transmitter (like veth_xmit) can pass the check before dev_close() clears IFF_UP. If the transmitter is then delayed, flush_all_backlogs() can run and finish before the transmitter grabs the backlog lock and queues the packet. The packet then escapes the flush and triggers UAF later when processed. Fix this by moving the netif_running() check inside the backlog lock. This serializes the check with the flush work (which also grabs the lock). We then either queue the packet before the flush runs (so it gets flushed), or check netif_running() after the flush/close completes (so it gets dropped).
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e9e4dd3267d0c5234c5c0f47440456b10875dec9 , < 2fface6e0bbd6314d1d9d071abf2c4d67548511c (git)
Affected: e9e4dd3267d0c5234c5c0f47440456b10875dec9 , < 46762cefe7f4e5bffc1eb467810a7bbb02e461d7 (git)
Affected: 78b6803a1961369d0b8350ff1f99b7375bbd7a8f (git)
Affected: b5d73d9cdd6be22795499890ea928a6f57ef829c (git)
Affected: f6533fed1bfa842e391ee50f9a9c5e963c71e579 (git)
Affected: 2095ab2456da766174cda8bc105d7a7b1bc70e16 (git)
Affected: f1fdb184aefa8447560e3ea0e605171592ffee41 (git)
Affected: f75c8a3015422128ca150e81c730bc2a471b5f4a (git)
Affected: 3.2.71 , < 3.3 (semver)
Affected: 3.4.111 , < 3.5 (semver)
Affected: 3.12.48 , < 3.13 (semver)
Affected: 3.14.54 , < 3.15 (semver)
Affected: 3.18.22 , < 3.19 (semver)
Affected: 4.1.9 , < 4.2 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 4.2
Unaffected: 0 , < 4.2 (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/core/dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2fface6e0bbd6314d1d9d071abf2c4d67548511c",
              "status": "affected",
              "version": "e9e4dd3267d0c5234c5c0f47440456b10875dec9",
              "versionType": "git"
            },
            {
              "lessThan": "46762cefe7f4e5bffc1eb467810a7bbb02e461d7",
              "status": "affected",
              "version": "e9e4dd3267d0c5234c5c0f47440456b10875dec9",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "78b6803a1961369d0b8350ff1f99b7375bbd7a8f",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "b5d73d9cdd6be22795499890ea928a6f57ef829c",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "f6533fed1bfa842e391ee50f9a9c5e963c71e579",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "2095ab2456da766174cda8bc105d7a7b1bc70e16",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "f1fdb184aefa8447560e3ea0e605171592ffee41",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "f75c8a3015422128ca150e81c730bc2a471b5f4a",
              "versionType": "git"
            },
            {
              "lessThan": "3.3",
              "status": "affected",
              "version": "3.2.71",
              "versionType": "semver"
            },
            {
              "lessThan": "3.5",
              "status": "affected",
              "version": "3.4.111",
              "versionType": "semver"
            },
            {
              "lessThan": "3.13",
              "status": "affected",
              "version": "3.12.48",
              "versionType": "semver"
            },
            {
              "lessThan": "3.15",
              "status": "affected",
              "version": "3.14.54",
              "versionType": "semver"
            },
            {
              "lessThan": "3.19",
              "status": "affected",
              "version": "3.18.22",
              "versionType": "semver"
            },
            {
              "lessThan": "4.2",
              "status": "affected",
              "version": "4.1.9",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/core/dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.2"
            },
            {
              "lessThan": "4.2",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "3.2.71",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "3.4.111",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "3.12.48",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "3.14.54",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "3.18.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "4.1.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: serialize netif_running() check in enqueue_to_backlog()\n\nSyzbot reported a KASAN slab-use-after-free in fib_rules_lookup().\n\nThe root cause is a race condition where packets can escape the backlog\nflushing during device unregistration (e.g., during netns exit).\n\nCommit e9e4dd3267d0 (\"net: do not process device backlog during unregistration\")\nintroduced a lockless netif_running() check in enqueue_to_backlog() to\nprevent queuing packets to an unregistering device.\n\nHowever, this creates a TOCTOU race window.\n\nA lockless transmitter (like veth_xmit) can pass\nthe check before dev_close() clears IFF_UP. If the transmitter is then\ndelayed, flush_all_backlogs() can run and finish before the transmitter\ngrabs the backlog lock and queues the packet. The packet then escapes\nthe flush and triggers UAF later when processed.\n\nFix this by moving the netif_running() check inside the backlog lock.\nThis serializes the check with the flush work (which also grabs the lock).\nWe then either queue the packet before the flush runs (so it gets flushed),\nor check netif_running() after the flush/close completes (so it gets dropped)."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.9,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The bug is in the generic per-CPU backlog receive path (`netif_rx`/`netif_receive_skb` -\u003e `enqueue_to_backlog`); packets can originate from remote peers reaching veth/bridge/NIC interfaces, and syzbot reproduced it via network transmit/receive activity during device unregistration.\nAC:L - The attacker controls both racing sides by concurrently flooding packets through a lockless transmitter (e.g. veth) while unregistering the device/netns (e.g. `ip link del` or netns exit); no victim-specific timing or memory layout is required beyond repeatable parallel traffic and teardown.\nPR:L - Triggering veth creation, traffic injection, and netdev/netns teardown requires only `CAP_NET_ADMIN` inside a network namespace, obtainable by an unprivileged local user via user namespaces (`unshare -Urn`); init-namespace root is not required.\nUI:N - Exploitation needs only the attacker\u0027s own concurrent packet transmission and interface/netns teardown; no independent action by another user or administrator is required at trigger time.\nS:C - The use-after-free is triggered from within an isolated network namespace yet corrupts host-global kernel routing state (`fib_rules_lookup` on freed namespace/rule data), crossing the container/netns security boundary into the host kernel\u0027s integrity and availability.\nC:H - KASAN reported slab-use-after-free in `fib_rules_lookup()` walking `net-\u003erules_ops`; freed namespace/device-associated structures can be reallocated and read through stale pointers, yielding an attacker-influenceable kernel memory read/disclosure primitive.\nI:H - Processing the escaped backlog skb invokes routing through freed `fib_rules_ops` and indirect function pointers (`ops-\u003ematch`/`ops-\u003eaction`); UAF on these heap objects enables heap grooming, control-flow hijack, and arbitrary kernel write leading to privilege escalation.\nA:H - Confirmed slab-use-after-free in core packet processing during device unregistration reliably causes kernel oops/panic (syzbot KASAN splat in `fib_rules_lookup()`), and repeated triggering can deny service to the entire host."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:44:54.422Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2fface6e0bbd6314d1d9d071abf2c4d67548511c"
        },
        {
          "url": "https://git.kernel.org/stable/c/46762cefe7f4e5bffc1eb467810a7bbb02e461d7"
        }
      ],
      "title": "net: serialize netif_running() check in enqueue_to_backlog()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-72493",
    "datePublished": "2026-08-15T05:57:27.642Z",
    "dateReserved": "2026-08-09T03:40:39.937Z",
    "dateUpdated": "2026-08-17T05:44:54.422Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-72493",
      "date": "2026-08-24",
      "epss": "0.00348",
      "percentile": "0.27439"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-23T15:01:11.000Z",
      "cve": "CVE-2026-72493",
      "id": "msrc_CVE-2026-72493",
      "initial_release_date": "2026-08-23T15:01:11.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "net: serialize netif_running() check in enqueue_to_backlog()",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-72493.json",
      "version": "1"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-72493\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-15T06:22:23.643\",\"lastModified\":\"2026-08-17T06:19:17.683\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet: serialize netif_running() check in enqueue_to_backlog()\\n\\nSyzbot reported a KASAN slab-use-after-free in fib_rules_lookup().\\n\\nThe root cause is a race condition where packets can escape the backlog\\nflushing during device unregistration (e.g., during netns exit).\\n\\nCommit e9e4dd3267d0 (\\\"net: do not process device backlog during unregistration\\\")\\nintroduced a lockless netif_running() check in enqueue_to_backlog() to\\nprevent queuing packets to an unregistering device.\\n\\nHowever, this creates a TOCTOU race window.\\n\\nA lockless transmitter (like veth_xmit) can pass\\nthe check before dev_close() clears IFF_UP. If the transmitter is then\\ndelayed, flush_all_backlogs() can run and finish before the transmitter\\ngrabs the backlog lock and queues the packet. The packet then escapes\\nthe flush and triggers UAF later when processed.\\n\\nFix this by moving the netif_running() check inside the backlog lock.\\nThis serializes the check with the flush work (which also grabs the lock).\\nWe then either queue the packet before the flush runs (so it gets flushed),\\nor check netif_running() after the flush/close completes (so it gets dropped).\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/core/dev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e9e4dd3267d0c5234c5c0f47440456b10875dec9\",\"lessThan\":\"2fface6e0bbd6314d1d9d071abf2c4d67548511c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e9e4dd3267d0c5234c5c0f47440456b10875dec9\",\"lessThan\":\"46762cefe7f4e5bffc1eb467810a7bbb02e461d7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"78b6803a1961369d0b8350ff1f99b7375bbd7a8f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b5d73d9cdd6be22795499890ea928a6f57ef829c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"f6533fed1bfa842e391ee50f9a9c5e963c71e579\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"2095ab2456da766174cda8bc105d7a7b1bc70e16\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"f1fdb184aefa8447560e3ea0e605171592ffee41\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"f75c8a3015422128ca150e81c730bc2a471b5f4a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3.2.71\",\"lessThan\":\"3.3\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.4.111\",\"lessThan\":\"3.5\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.12.48\",\"lessThan\":\"3.13\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.14.54\",\"lessThan\":\"3.15\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.18.22\",\"lessThan\":\"3.19\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"4.1.9\",\"lessThan\":\"4.2\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/core/dev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.2\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.2\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.5\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H\",\"baseScore\":9.9,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"CHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.1,\"impactScore\":6.0}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2fface6e0bbd6314d1d9d071abf2c4d67548511c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/46762cefe7f4e5bffc1eb467810a7bbb02e461d7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "current_release_date": "2026-08-19T18:59:12+00:00",
      "cve": "CVE-2026-72493",
      "id": "CVE-2026-72493",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_not_affected": "1",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: net: serialize netif_running() check in enqueue_to_backlog()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-72493.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…