Description
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).
Published: 2026-08-15
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This kernel bug arises from a race condition between the lockless check of the device state when queuing packets and the later flushing of the device backlog during unregistration. When a lockless transmitter passes a stale running check, the backlog may be flushed before the packet is enqueued, allowing the packet to escape the flush and later invoke a use‑after‑free in the packet handling path. This flaw can lead to arbitrary writes in kernel memory and therefore remote code execution in privileged context.

Affected Systems

All Linux kernel builds that do not include the committed fix (move the netif_running() check inside the backlog lock). The vulnerability is present in kernels prior to the application of the commit referenced above and affects all distributions that ship those unpatched kernels.

Risk and Exploitability

No EPSS data is available, and the vulnerability is not listed in CISA KEV. Nonetheless, the flaw involves a kernel use‑after‑free, a high‑severity condition. An attacker would require the ability to transmit malicious packets while a network namespace is being torn down or a device is being unregistered, which typically implies local or privileged access. The potential impact is remote code execution with root privileges. The lack of a public exploit does not diminish the severity of the flaw given its inherent kernel privilege escalation risk.

Generated by OpenCVE AI on August 15, 2026 at 12:09 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the Linux kernel patch that moves the netif_running() check into the backlog lock (commit e9e4dd3267).
  • Prior to deleting a network namespace, bring all interfaces down with "ip link down" to avoid premature backlog flushing.
  • If possible, avoid using lockless transmitters such as veth_xmit during namespace teardown, or configure them to synchronize with the flush mechanism.

Generated by OpenCVE AI on August 15, 2026 at 12:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description 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).
Title net: serialize netif_running() check in enqueue_to_backlog()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-15T05:57:27.642Z

Reserved: 2026-08-09T03:40:39.937Z

Link: CVE-2026-72493

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:23.643

Modified: 2026-08-15T06:22:23.643

Link: CVE-2026-72493

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T12:15:03Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-416

    Use After Free