On May 27, 2026, Linux kernel maintainers disclosed CVE-2026-45845, a local denial-of-service vulnerability in the TAPRIO traffic-control subsystem. The flaw allows an unprivileged local user to trigger a NULL pointer dereference via the class-dump operation, instantly crashing the kernel with a panic. While this is rooted in Linux kernel code, Windows users running Windows Subsystem for Linux (WSL2) inherit the same vulnerable kernel—and the same exposure to a system-halting crash.

At its core, the bug sits in the TAPRIO (Time-Aware Priority Shaper) queuing discipline. Network administrators use TAPRIO to shape traffic according to the IEEE 802.1Qbv standard, mostly in industrial or real-time Ethernet scenarios. A misstep in the class-dump handler—an operation that outputs configuration details of a qdisc—fails to check for a valid pointer before dereferencing it. With a specially crafted command sequence, a user in the same network namespace as a TAPRIO instance can provoke a kernel panic. No elevated privileges are needed.

The Disclosure and Key Details

Security researchers spotted the defect during a routine fuzzing campaign against the kernel’s networking stack. Their report landed on linux-netdev, and within hours the netdev maintainers confirmed that all kernel versions containing the TAPRIO module (since its introduction in 4.19) were susceptible. A patch landed in the netdev tree on May 26, and the CVE was assigned the following day. Distributions began backporting the fix to their stable kernels immediately.

The commit message is blunt: “taprio: check for NULL child in class_dump.” The fix adds a single guard clause that verifies the child qdisc pointer exists before using it. Without it, any process that can issue a tc class show command against a TAPRIO qdisc—intentionally or through a script—can pull the rug out from under the entire operating system.

Understanding TAPRIO and the Flaw

TAPRIO is not a default qdisc; an administrator must explicitly set it on a network interface. This narrows the attack surface somewhat. However, on many enterprise and industrial Linux deployments, TAPRIO is essential for time-sensitive networking. A local attacker who gains even unprivileged shell access—via a vulnerable web application, a shared CI runner, or a compromised container breakout—can trivially crash the host by issuing a few tc commands.

The class-dump function is invoked when user-space queries the internal state of a qdisc. In TAPRIO, the handler iterates over child qdiscs attached to each traffic class. For each class, it checks if a child exists. If the child is NULL, the old code simply dereferences the NULL pointer, causing an immediate page fault. The kernel tries to handle the fault, but the netdev paths run in contexts where recovery is impossible; the system panics and reboots.

This is a classic NULL pointer dereference, rated high in CVSS because it offers a reliable, unauthenticated local DoS. Although it cannot be used for privilege escalation or remote code execution on its own, repeated panics can disrupt operations, mask forensic traces, or facilitate time-of-check/time-of-use attacks against physical hardware. The vulnerability highlights how a simple oversight in an obscure feature can have outsized consequences in environments where availability is critical.

The Impact on Linux Systems

Any Linux host running a kernel with CONFIG_NET_SCH_TAPRIO enabled is vulnerable if an attacker can reach the network namespace where a TAPRIO qdisc is configured. Default desktop distributions usually load the module on-demand, so merely having the module available is enough—once triggered, it loads and becomes exploitable. Systemd-based servers, embedded Linux routers, and container hosts are all at risk if they use TAPRIO or if an adversary can persuade the kernel to load the module.

The attack requires network namespace access. In a containerized environment like Docker or Kubernetes, a container’s network namespace is isolated by default, but attackers who escape the container into the host’s root namespace can target any TAPRIO instance. Worse, if a host itself uses TAPRIO on a physical interface, any local user in the initial namespace can cause a panic with a single command. This includes users with shell access, cron jobs, or even malicious systemd services.

What This Means for Windows and WSL Users

Windows 10 and Windows 11 systems running WSL2 are not insulated from this vulnerability. WSL2 operates a lightweight Hyper-V virtual machine that boots a genuine Linux kernel maintained by Microsoft. That kernel is built from the same upstream source and includes the TAPRIO module. When a user launches a WSL2 distribution, the kernel is running and the module is available. An attacker inside the WSL2 instance—whether through a compromised development tool, an untrusted Docker image, or a malicious script—can craft the same tc commands to panic the Linux kernel.

Because WSL2 runs in a separate VM, a kernel panic inside WSL2 does not directly crash the Windows host. However, it abruptly terminates the entire WSL2 environment and any other WSL2 distributions that share the same kernel. Unsaved work, running containers, and background services vanish instantly. The impact is not just an annoyance; it can corrupt filesystem transactions and leave data in an inconsistent state. For developers who rely on WSL2 as their primary development environment, a forced reboot of the WSL2 VM can halt productivity just as effectively as a host crash.

Microsoft typically ships the WSL2 kernel from a specific longterm branch and backports security fixes on a regular cadence. The May 2026 WSL kernel update will almost certainly include the TAPRIO fix, but until users install it, every WSL2 instance remains a ticking time bomb. It is crucial for Windows users who depend on WSL to verify their kernel version and apply the update as soon as it is available.

How to Mitigate the Risk

For traditional Linux systems, the immediate action is to update the kernel to a version that incorporates the patch. Distribution vendors have released advisory notices referencing CVE-2026-45845. Administrators should consult their vendor’s security bulletins for specific package versions.

If an immediate update is not feasible, several workarounds exist:

  • Remove the TAPRIO module by running rmmod sch_taprio and blacklisting it to prevent automatic loading. This is effective if TAPRIO is not needed.
  • Restrict access to the tc command with filesystem permissions or SELinux/AppArmor policies, limiting CAP_NET_ADMIN to trusted users only.
  • Disable network namespace creation with kernel parameters or by setting net.core.netns_enable = 0, though this breaks many containerization features.

For Windows/WSL users, mitigation is straightforward:

  1. Update the WSL2 kernel. Open a PowerShell window and run wsl --update. This fetches the latest kernel from Microsoft. After updating, restart WSL with wsl --shutdown.
  2. Verify the kernel version. Inside WSL, check uname -r. The patched kernel will be version 5.15.90 or higher (for the 5.15 longterm series) or 6.1.x if Microsoft has moved to a newer series.
  3. Avoid running untrusted code inside WSL until the update is applied. Even a simple, seemingly harmless tc script from the internet could trigger the panic.
  4. Use a separate WSL instance for risky experiments so that one crash does not tear down all your other WSL environments.

The Bigger Picture: Kernel Security in WSL

CVE-2026-45845 is a stark reminder that the security boundary in WSL2 is the Linux kernel itself—and that kernel is just as susceptible to local DoS flaws as any other. Microsoft has steadily improved the WSL2 kernel hardening, but the attack surface remains large because the kernel must support a wide range of networking features. For Windows administrators, the advice is to treat WSL2 instances with the same paranoia as any other Linux VM: apply updates promptly, limit which users can install distributions, and consider using Windows Defender Application Control policies to restrict what runs inside WSL.

This incident also underscores the value of the shared kernel model. Because all WSL2 distributions use a single kernel, fixing it once protects every distribution simultaneously. The downside is that a single vulnerability endangers all WSL2 workloads at once. Enterprises that run containerized CI/CD pipelines inside WSL2 should monitor kernel CVEs as diligently as they do Windows updates.

Looking ahead, the TAPRIO fix will likely be backported to other kernel versions and, given the simplicity of the patch, one-off kernel builds for embedded systems should come quickly. For the home user or developer who just wants a stable Linux environment on Windows, the message is simple: wsl --update today, and avoid the risk of losing work to a single malicious tc command.


This article is based on the CVE-2026-45845 disclosure and the accompanying netdev patch. For the latest official guidance, consult the National Vulnerability Database and your distribution’s security advisories.