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.
| 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-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-realtimeUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-azureUpgrade linux-image-azure-fdeUpgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-laptop-23.10Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-gcp-fipsUpgrade linux-image-gke-7.0Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-7.0.0-1008-gcpUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-nvidia-bos-7.0Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-genericUpgrade linux-image-aws-fipsUpgrade linux-image-gcp-64kUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-gcp-64k-7.0Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-oem-26.04Upgrade linux-image-oracle-6.8Upgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-aws-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-fipsUpgrade linux-image-oem-22.04cUpgrade linux-image-raspi-7.0Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-nvidia-7.0Upgrade linux-image-gke-64k-6.8Upgrade linux-image-realtime-64kUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-realtime-7.0Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-generic-7.0Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-gkeUpgrade linux-image-6.8.0-136-fipsUpgrade linux-image-awsUpgrade linux-image-7.0.0-28-genericUpgrade linux-image-gke-64k-7.0Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-oem-7.0Upgrade linux-image-xilinx-6.8Upgrade linux-image-7.0.0-1014-azureUpgrade linux-image-gke-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-oem-20.04Upgrade linux-image-gkeopUpgrade linux-image-aws-64k-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-nvidia-bosUpgrade linux-image-7.0.0-1003-gke-64kUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-7.0Upgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-oem-26.04aUpgrade linux-image-gke-6.8Upgrade linux-image-gcp-7.0Upgrade linux-image-7.0.0-1008-gcp-64kUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-virtual-7.0Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-raspi-realtimeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-tegraUpgrade linux-image-generic-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-7.0.0-1003-gkeUpgrade linux-image-nvidia-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-virtualUpgrade linux-image-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-kvmUpgrade linux-image-7.0.0-28-realtimeUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-7.0.0-1009-oemUpgrade linux-image-azure-lts-24.04Upgrade linux-image-generic-64k-7.0Upgrade linux-image-oem-24.04Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-6.8.0-136-genericUpgrade 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-oracleUpgrade linux-image-oem-24.04dUpgrade linux-image-oem-24.04aUpgrade linux-image-generic-64kUpgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-ibm-classicUpgrade linux-image-azure-fipsUpgrade linux-image-azure-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64kUpgrade linux-image-7.0.0-1009-awsUpgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-oem-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-oem-20.04dUpgrade linux-image-intel-iotgUpgrade linux-image-ibm-7.0Upgrade linux-image-ibm-6.8Upgrade linux-image-azure-fde-7.0Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gcpUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-7.0Upgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-oracle-7.0Upgrade linux-image-oem-24.04cUpgrade linux-image-nvidia-64k-7.0Upgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1061-awsUpgrade linux-image-7.0.0-28-realtime-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-oem-20.04bUpgrade linux-image-fips-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-xilinxUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-oem-24.04b | Jul 20, 2026 | May 27, 2026 |
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