In the Linux kernel, the following vulnerability has been resolved:
net/sched: taprio: fix NULL pointer dereference in class dump
When a TAPRIO child qdisc is deleted via RTM_DELQDISC, taprio_graft() is called with new == NULL and stores NULL into q->qdiscs[cl - 1]. Subsequent RTM_GETTCLASS dump operations walk all classes via taprio_walk() and call taprio_dump_class(), which calls taprio_leaf() returning the NULL pointer, then dereferences it to read child->handle, causing a kernel NULL pointer dereference.
The bug is reachable with namespace-scoped CAP_NET_ADMIN on any kernel with CONFIG_NET_SCH_TAPRIO enabled. On systems with unprivileged user namespaces enabled, an unprivileged local user can trigger a kernel panic by creating a taprio qdisc inside a new network namespace, grafting an explicit child qdisc, deleting it, and requesting a class dump. The RTM_GETTCLASS dump itself requires no capability.
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000007: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000038-0x000000000000003f] RIP: 0010:taprio_dump_class (net/sched/sch_taprio.c:2478) Call Trace: <TASK> tc_fill_tclass (net/sched/sch_api.c:1966) qdisc_class_dump (net/sched/sch_api.c:2326) taprio_walk (net/sched/sch_taprio.c:2514) tc_dump_tclass_qdisc (net/sched/sch_api.c:2352) tc_dump_tclass_root (net/sched/sch_api.c:2370) tc_dump_tclass (net/sched/sch_api.c:2431) rtnl_dumpit (net/core/rtnetlink.c:6864) netlink_dump (net/netlink/af_netlink.c:2325) rtnetlink_rcv_msg (net/core/rtnetlink.c:6959) netlink_rcv_skb (net/netlink/af_netlink.c:2550) </TASK>
Fix this by substituting &noop_qdisc when new is NULL in taprio_graft(), a common pattern used by other qdiscs (e.g., multiq_graft()) to ensure the q->qdiscs[] slots are never NULL. This makes control-plane dump paths safe without requiring individual NULL checks.
Since the data-plane paths (taprio_enqueue and taprio_dequeue_from_txq) previously had explicit NULL guards that would drop/skip the packet cleanly, update those checks to test for &noop_qdisc instead. Without this, packets would reach taprio_enqueue_one() which increments the root qdisc's qlen and backlog before calling the child's enqueue; noop_qdisc drops the packet but those counters are never rolled back, permanently inflating the root qdisc's statistics.
After this change *old can be a valid qdisc, NULL, or &noop_qdisc. Only call qdisc_put(*old) in the first case to avoid decreasing noop_qdisc's refcount, which was never increased.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | May 27, 2026 |
| Ubuntu | — | Upgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-realtimeUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-awsUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-gke-64kUpgrade linux-image-generic-7.0Upgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-genericUpgrade linux-image-gke-64k-6.8Upgrade linux-image-gke-6.8Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-7.0.0-1008-gcpUpgrade linux-image-azureUpgrade linux-image-realtime-6.8.1Upgrade linux-image-7.0.0-1010-azureUpgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-7.0.0-1003-gke-64kUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-realtime-7.0Upgrade linux-image-6.8.0-136-fipsUpgrade linux-image-oem-26.04aUpgrade linux-image-nvidia-bosUpgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-raspi-7.0Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-realtime-64kUpgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-6.8Upgrade linux-image-fipsUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-nvidia-bos-7.0Upgrade linux-image-aws-6.8Upgrade linux-image-oem-26.04Upgrade linux-image-aws-64k-7.0Upgrade linux-image-oracle-6.8Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-gkeopUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-aws-fipsUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-gke-64k-7.0Upgrade linux-image-virtual-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-oem-7.0Upgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-nvidia-7.0Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-7.0.0-28-genericUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-gkeUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-azure-fdeUpgrade linux-image-oem-20.04cUpgrade linux-image-laptop-23.10Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-gcp-fipsUpgrade linux-image-gke-7.0Upgrade linux-image-oem-22.04bUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-7.0.0-1009-awsUpgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-ibm-classicUpgrade linux-image-azure-6.8Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64k-7.0Upgrade linux-image-oem-24.04aUpgrade linux-image-oem-24.04Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-generic-64k-7.0Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-oem-24.04dUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-oracleUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oracle-7.0Upgrade linux-image-oem-24.04cUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-7.0Upgrade linux-image-7.0.0-28-realtime-64kUpgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-7.0.0-1009-oemUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-oem-22.04aUpgrade linux-image-7.0.0-1008-gcp-64kUpgrade linux-image-xilinxUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-oem-24.04bUpgrade linux-image-oem-20.04bUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-gcp-7.0Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-ibm-7.0Upgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-oem-20.04dUpgrade linux-image-intel-iotgUpgrade linux-image-ibm-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-azure-fde-7.0Upgrade linux-image-aws-64k-6.8Upgrade linux-image-7.0.0-28-realtimeUpgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-virtual-7.0Upgrade linux-image-generic-lpaeUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-raspi-realtimeUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-nvidiaUpgrade linux-image-generic-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-7.0.0-1003-gkeUpgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidia-tegraUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gkeop-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k | Jul 20, 2026 | May 27, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub