Skip to main content

Linux Kernel CVE-2026-45845

| EUVDEUVD-2026-32171 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-05-27 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-656f-mgf3-p7r2
5.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Create network namespace via unshare()
  2. Delivery
    Obtain namespace-scoped CAP_NET_ADMIN
  3. Exploit
    Create TAPRIO qdisc and attach child via RTM_NEWQDISC
  4. Install
    Delete child qdisc via RTM_DELQDISC (NULL stored in q->qdiscs[])
  5. C2
    Issue RTM_GETTCLASS class dump
  6. Execute
    taprio_dump_class() dereferences NULL at offset 0x38
  7. Impact
    Kernel panic, host crash

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three conditions to align: (1) the kernel must be compiled with CONFIG_NET_SCH_TAPRIO enabled - this is true for most distribution kernels where sch_taprio is available as a loadable module; (2) the attacker must be able to create a TAPRIO qdisc, which requires CAP_NET_ADMIN scoped to a network namespace - on systems with unprivileged user namespaces enabled (kernel.unprivileged_userns_clone=1 or user.max_user_namespaces > 0, the default on Ubuntu 20.04+, Fedora, Debian 10+, and most container platforms) any unprivileged local user can satisfy this via unshare(CLONE_NEWNET) with no prior privileges; on hardened systems where unprivileged user namespaces are disabled, the attacker requires at least a local user account with system-level CAP_NET_ADMIN; (3) the triggering RTM_GETTCLASS dump requires no capability at all. Exploitation is strictly local - no remote attack path exists. The bug does not enable privilege escalation to root; the sole impact is a kernel panic causing full host availability loss.

Impact

The CVSS 3.1 score of 5.5 (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) is broadly accurate, but the PR:L rating understates the real-world attack surface on systems with unprivileged user namespaces enabled: creating a new network namespace requires no existing privilege on such systems, effectively making the attack equivalent to PR:N for local users on Ubuntu, Fedora, Debian, and similar. EPSS of 0.02% (5th percentile) indicates very low automated exploitation probability, and the vulnerability is absent from CISA KEV with no public exploit code identified at time of analysis. However, the attack sequence is fully described in the commit message and requires only standard netlink calls (tc commands), making independent rediscovery low-effort. SSVC signals: exploitation status is none confirmed, automatable yes (fixed sequence of netlink operations), technical impact is total availability loss (kernel panic crashes the host). The impact is purely denial-of-service - no confidentiality or integrity impact is present. Risk is highest on multi-tenant Linux hosts, container orchestration nodes, and cloud VMs where local users exist and unprivileged user namespaces are enabled by default; risk is substantially lower on hardened systems where user.max_user_namespaces=0.

Exploit ScenarioDerived

An unprivileged user on a default Ubuntu or Fedora system opens a new network namespace via unshare(CLONE_NEWNET) to obtain namespace-scoped CAP_NET_ADMIN at no privilege cost, then issues a sequence of tc netlink commands: creates a TAPRIO qdisc on a virtual interface, grafts a child qdisc to it via RTM_NEWQDISC, deletes the child via RTM_DELQDISC (causing taprio_graft() to store NULL), and finally runs tc class show which triggers RTM_GETTCLASS - taprio_walk() enumerates all classes, taprio_dump_class() dereferences the NULL pointer at offset 0x38, and the kernel panics with a general protection fault, crashing the entire host. No public exploit code has been identified, but the attack sequence is fully documented in the commit message and requires only standard tc/netlink calls.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 26, 2026

Kernel NULL pointer dereference in the Linux TAPRIO traffic scheduler allows a local user with namespace-scoped CAP_NET_ADMIN to trigger a kernel panic. On systems with unprivileged user namespaces enabled - the default on Ubuntu, Fedora, Debian, and most container-oriented distributions - any unprivileged local user can acquire namespace-scoped CAP_NET_ADMIN simply by creating a new network namespace, reducing the effective privilege bar to an ordinary user account. Patched stable releases exist (6.6.141, 6.12.91, 7.0.10, 6.18.33, 7.1-rc2), no active exploitation has been confirmed by CISA KEV, and EPSS is 0.02% (5th percentile), but the straightforward attack sequence and wide Linux footprint make this a priority patch on multi-tenant or container-hosting systems.

RemediationAI

Upgrade to a patched Linux kernel: 6.6.141 or later on the 6.6.x LTS branch, 6.12.91 or later on 6.12.x, 6.18.33 or later on 6.18.x, 7.0.10 or later on 7.0.x, or 7.1-rc2 or later on mainline. Fix commits are available at https://git.kernel.org/stable/c/8f1ff8866cb9f655e5faea6994eb902960be8e04, https://git.kernel.org/stable/c/3d07ca5c0fae311226f737963984bd94bb159a87, https://git.kernel.org/stable/c/48b26d48e76221dc90b02bf5428bab53643461ca, https://git.kernel.org/stable/c/d02e2fbf60de46678e2ea698a6a904fd21e1cc31, and https://git.kernel.org/stable/c/ec2501e361b08b50bcb1e7b3253fc861abbda28d. If immediate patching is not feasible, disable unprivileged user namespaces via sysctl -w kernel.unprivileged_userns_clone=0 (Debian-based) or sysctl -w user.max_user_namespaces=0 (RHEL/Fedora-based) to prevent unprivileged acquisition of namespace-scoped CAP_NET_ADMIN - note this breaks rootless container tools (Podman, Bubblewrap, Flatpak) and should be tested before applying in production. As an alternative, if TAPRIO is not in use, unloading the sch_taprio module (rmmod sch_taprio) eliminates the attack surface without affecting other network scheduling functionality, though any tc configuration referencing TAPRIO qdiscs would need to be removed first.

Affected VersionsENISA

Linux 665338b2a7a0139337d1f85be65ed16e487f84c1 <8f1ff8866cb9f655e5faea6994eb902960be8e04
Linux patch: 6.6.141
Linux patch: 6.12.91
Linux 665338b2a7a0139337d1f85be65ed16e487f84c1 <3d07ca5c0fae311226f737963984bd94bb159a87
Linux 665338b2a7a0139337d1f85be65ed16e487f84c1 <d02e2fbf60de46678e2ea698a6a904fd21e1cc31
Linux 6.6
Linux patch: 7.0.10
Linux patch: 0
Linux patch: 6.18.33
Linux 665338b2a7a0139337d1f85be65ed16e487f84c1 <48b26d48e76221dc90b02bf5428bab53643461ca
Linux 665338b2a7a0139337d1f85be65ed16e487f84c1 <ec2501e361b08b50bcb1e7b3253fc861abbda28d
Linux patch: 7.1-rc2

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability is in the Linux kernel's traffic control (tc) subsystem, specifically the Time-Aware Priority (TAPRIO) qdisc implementation at net/sched/sch_taprio.c, which implements IEEE 802.1Q gate control list scheduling for time-sensitive networking (TSN). CWE-476 (NULL Pointer Dereference) is the root cause: taprio_graft() legitimately stores NULL into q->qdiscs[cl - 1] when a child qdisc is deleted via RTM_DELQDISC, but taprio_dump_class() - invoked during RTM_GETTCLASS class enumeration via taprio_walk() - calls taprio_leaf() without guarding the NULL return, then dereferences it to read child->handle at offset 0x38 (confirmed by KASAN trace: null-ptr-deref in range 0x38-0x3f). The fix substitutes &noop_qdisc as a sentinel for NULL, a pattern already used by multiq_graft() and others. The data-plane enqueue/dequeue paths also required updating to test for &noop_qdisc rather than NULL to prevent permanent inflation of root qdisc statistics. CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* covers all affected versions; the bug is gated on CONFIG_NET_SCH_TAPRIO being compiled in, which is true for most distribution kernels as a loadable module.

Know when Canonical gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.5 MEDIUM

Local-only vector confirmed; PR:L reflects namespace-scoped CAP_NET_ADMIN obtainable by any local user on systems with unprivileged user namespaces enabled; purely availability impact via kernel panic.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 5.5 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

4
CVSS changed
Jun 26, 2026 - 18:52 NVD
5.5 (MEDIUM)
Patch available
May 27, 2026 - 19:46 EUVD
CVE Published
May 27, 2026 - 11:16 nvd
UNKNOWN (no severity yet)
CVE Published
May 27, 2026 - 11:16 nvd
MEDIUM 5.5

DescriptionNVD

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.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Prevalence
Ubiquitous
core OS kernel running the majority of servers, containers, and cloud infrastructure globally
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2014-6271 CRITICAL POC
9.8 Sep 24

GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2016-3714 HIGH POC
8.4 May 05

The (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.

CVE-2017-12617 HIGH POC
8.1 Oct 04

When running Apache Tomcat versions 9.0.0.M1 to 9.0.0, 8.5.0 to 8.5.22, 8.0.0.RC1 to 8.0.46 and 7.0.0 to 7.0.81 with HTT

CVE-2016-8735 CRITICAL POC
9.8 Apr 06

Remote code execution is possible with Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8

CVE-2014-7169 CRITICAL POC
9.8 Sep 25

GNU Bash through 4.3 bash43-025 processes trailing strings after certain malformed function definitions in the values of

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2016-5195 HIGH POC
7.0 Nov 10

Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by lev

CVE-2013-2423 LOW POC
3.7 Apr 17

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 17 and earlier, and

CVE-2023-4911 HIGH POC
7.8 Oct 03

Local privilege escalation in the GNU C Library (glibc) dynamic loader ld.so allows unprivileged local users on affected

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy