Description
In the Linux kernel, the following vulnerability has been resolved:

net/sched: sch_teql: fix use-after-free on lower qdisc drop

The issue: teql_master_xmit() tests the slave's ndo_start_xmit() return
value against NETDEV_TX_OK alone. A slave that consumes the skb but
returns an error code (rc < NET_XMIT_MASK, e.g. NET_XMIT_DROP) is treated
as if the skb were still owned, so the loop restores skb->dev and calls
__skb_pull() on it. A VLAN slave returns the result of dev_queue_xmit()
from its ndo_start_xmit() (propagated since cbbef5e18307), and when the
lower qdisc drops the packet that value is NET_XMIT_DROP after the skb
has been freed, giving a use-after-free in teql_master_xmit().

The Fix: test for consumption with dev_xmit_complete(), which accepts
NETDEV_TX_OK and every rc < NET_XMIT_MASK, matching other callers that
need to distinguish consumed results from busy. Only NETDEV_TX_OK keeps
the packet counted in tx_packets/tx_bytes and advances the slave; a
consumed result that is neither a success nor NET_XMIT_CN ends the
attempt and is charged to tx_dropped, so lower-qdisc drops are no longer
reported as good transmits. NET_XMIT_CN is counted like success because
it can accompany acceptance of the current packet: pfifo_head_drop drops
the old head, enqueues the current skb and returns NET_XMIT_CN.

Conditions to recreate the bug:
With CONFIG_NET_SCH_TEQL,
CONFIG_VLAN_8021Q and CONFIG_DUMMY enabled, add lkrdummy0 (dummy) and
lkrvlan0 (VLAN id 37 on lkrdummy0); set a pfifo limit 0 root on lkrdummy0
and a teql0 root on lkrvlan0; bring teql0 up with an address and send one
UDP packet to it. The VLAN xmit returns NET_XMIT_DROP from the lower
qdisc while holding a freed skb.
Published: 2026-11-07
Score: n/a
EPSS: n/a
KEV: No
Impact: Use‑After‑Free in Linux kernel traffic scheduling
Action: Immediate patch
AI Analysis

Impact

The vulnerability lies in the Linux kernel’s queuing discipline, specifically the teql_master_xmit function. When a VLAN interface performs network transmission, the lower qdisc can drop a packet after the socket buffer has already been freed. The code mistakenly treats this situation as a successful transmission instead of recognizing that the skb was discarded, leading to a use‑after‑free. An attacker that can forge traffic to trigger the drop can corrupt kernel memory, potentially causing a crash or enabling arbitrary code execution. The weakness is a classic use‑after‑free scenario, as the code accesses a freed memory area after the packet has been released.

Affected Systems

Linux kernels configured with CONFIG_NET_SCH_TEQL, CONFIG_VLAN_8021Q, and CONFIG_DUMMY are vulnerable. Any deployment of such a configuration that includes the teql qdisc without the recent fix applies. The affected kernel versions are not listed explicitly, but the vulnerability exists in any kernel containing the unpatched teql implementation. Users should check their kernel release notes or apply the patch referenced in the kernel svn commit history.

Risk and Exploitability

The CVSS score has not been published, and the EPSS score is not available; the vulnerability is not listed in CISA’s KEV catalog, indicating it has not yet been widely exploited in the wild. However, the flaw resides in the kernel’s core networking stack and can be triggered by network traffic that an attacker can control, likely from an external host. The resulting memory corruption is a high‑severity risk if the attacker achieves successful exploitation, but the lack of publicly known exploits and the need for specific configuration reduce the immediate likelihood of widespread attacks.

Generated by OpenCVE AI on November 7, 2026 at 15:24 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a revision that contains the commit c2702ae318630787c640ec0d0403ffd9d95c43e9e (or any later release that includes the teql use‑after‑free fix).
  • If the teql queuing discipline is not required for your network traffic, disable CONFIG_NET_SCH_TEQL or remove the teql root qdisc from VLAN interfaces.
  • Reboot the system after applying the patched kernel to ensure the new code is active.

Generated by OpenCVE AI on November 7, 2026 at 15:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 07 Nov 2026 15:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 07 Nov 2026 14:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_teql: fix use-after-free on lower qdisc drop The issue: teql_master_xmit() tests the slave's ndo_start_xmit() return value against NETDEV_TX_OK alone. A slave that consumes the skb but returns an error code (rc < NET_XMIT_MASK, e.g. NET_XMIT_DROP) is treated as if the skb were still owned, so the loop restores skb->dev and calls __skb_pull() on it. A VLAN slave returns the result of dev_queue_xmit() from its ndo_start_xmit() (propagated since cbbef5e18307), and when the lower qdisc drops the packet that value is NET_XMIT_DROP after the skb has been freed, giving a use-after-free in teql_master_xmit(). The Fix: test for consumption with dev_xmit_complete(), which accepts NETDEV_TX_OK and every rc < NET_XMIT_MASK, matching other callers that need to distinguish consumed results from busy. Only NETDEV_TX_OK keeps the packet counted in tx_packets/tx_bytes and advances the slave; a consumed result that is neither a success nor NET_XMIT_CN ends the attempt and is charged to tx_dropped, so lower-qdisc drops are no longer reported as good transmits. NET_XMIT_CN is counted like success because it can accompany acceptance of the current packet: pfifo_head_drop drops the old head, enqueues the current skb and returns NET_XMIT_CN. Conditions to recreate the bug: With CONFIG_NET_SCH_TEQL, CONFIG_VLAN_8021Q and CONFIG_DUMMY enabled, add lkrdummy0 (dummy) and lkrvlan0 (VLAN id 37 on lkrdummy0); set a pfifo limit 0 root on lkrdummy0 and a teql0 root on lkrvlan0; bring teql0 up with an address and send one UDP packet to it. The VLAN xmit returns NET_XMIT_DROP from the lower qdisc while holding a freed skb.
Title net/sched: sch_teql: fix use-after-free on lower qdisc drop
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-11-07T14:08:47.978Z

Reserved: 2026-09-25T10:25:14.405Z

Link: CVE-2026-99282

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-07T14:17:03.940

Modified: 2026-11-07T14:17:03.940

Link: CVE-2026-99282

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-07T15:30:07Z

Weaknesses