Skip to main content

Linux Kernel CVE-2026-31675

| EUVDEUVD-2026-25642 HIGH
Out-of-bounds Read (CWE-125)
2026-04-25 Linux
7.8
CVSS 3.1 · NVD
Share

Severity by source

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

Local-only with privileged qdisc config (PR:L, achievable via user namespaces); the multi-component netem+AF_PACKET+IPIP setup is non-trivial (AC:H); realistic impact is a kernel panic (A:H) with only marginal single-byte read/write (C:L/I:L).

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

6
Analysis Generated
Jul 24, 2026 - 02:16 vuln.today
Patch released
Apr 27, 2026 - 18:32 nvd
Patch available
CVSS changed
Apr 27, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Apr 25, 2026 - 10:16 EUVD
EUVD ID Assigned
Apr 25, 2026 - 09:00 euvd
EUVD-2026-25642
CVE Published
Apr 25, 2026 - 08:46 nvd
HIGH 7.8

DescriptionCVE.org

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

net/sched: sch_netem: fix out-of-bounds access in packet corruption

In netem_enqueue(), the packet corruption logic uses get_random_u32_below(skb_headlen(skb)) to select an index for modifying skb->data. When an AF_PACKET TX_RING sends fully non-linear packets over an IPIP tunnel, skb_headlen(skb) evaluates to 0.

Passing 0 to get_random_u32_below() takes the variable-ceil slow path which returns an unconstrained 32-bit random integer. Using this unconstrained value as an offset into skb->data results in an out-of-bounds memory access.

Fix this by verifying skb_headlen(skb) is non-zero before attempting to corrupt the linear data area. Fully non-linear packets will silently bypass the corruption logic.

AnalysisAI

Out-of-bounds kernel memory access in the Linux kernel's network emulation scheduler (sch_netem) allows a local, privileged user to corrupt kernel memory and likely panic the system. When a netem qdisc has packet corruption enabled and an AF_PACKET TX_RING transmits fully non-linear packets over an IPIP tunnel, skb_headlen(skb) is 0, causing get_random_u32_below(0) to return an unconstrained 32-bit offset that indexes past the linear skb->data area. There is no public exploit identified at time of analysis, EPSS risk is very low (0.02%), and it is not on CISA KEV; it is a locally-triggerable memory-safety bug rather than a remotely exploitable one.

Technical ContextAI

The flaw lives in netem_enqueue() within net/sched/sch_netem.c, the Network Emulator (netem) queuing discipline used with tc to inject artificial latency, loss, and corruption for testing. Netem's corruption feature deliberately flips a bit at a pseudo-random byte offset inside the packet's linear header region, selecting the index with get_random_u32_below(skb_headlen(skb)). skb_headlen() returns the length of the linearized portion of a socket buffer; for fully non-linear (paged/fragmented) skbs - which AF_PACKET's TX_RING zero-copy path can produce when encapsulated through an IPIP (ip_tunnel) device - that length is 0. Passing 0 to get_random_u32_below() triggers its variable-ceiling slow path, which returns a full-range random u32 instead of a bounded value, and using it as an index into skb->data reads/modifies memory outside the buffer. This maps to CWE-125 (Out-of-Bounds Read); because netem corruption performs a read-modify-write (XOR) on the byte, an out-of-bounds write of a single flipped bit is also plausible. Affected products per CPE are the generic Linux kernel (cpe:2.3:a:linux:linux:*).

RemediationAI

Apply the vendor-released patch by upgrading to a fixed kernel: 6.6.134, 6.12.81, 6.18.22, 6.19.12, or 7.0 (mainline), whichever matches your stable series, per the git.kernel.org stable commits (a14b56863348, 13a66ca1e235, 3a2999704ac3, 4fd258e281fa, d64cb81dcbd5). Distribution users should track and apply Ubuntu USN-8567-1 (https://ubuntu.com/security/notices/USN-8567-1) or the equivalent advisory for their distro. Where immediate patching is not possible, the practical compensating control is to avoid configuring netem qdiscs with the 'corrupt' option on production hosts (e.g., do not use 'tc qdisc ... netem corrupt <pct>'), since the vulnerable branch only runs when corruption is enabled - the side effect is loss of that specific traffic-emulation capability, which is normally only used in test/lab environments. Additionally, restrict CAP_NET_ADMIN and disable unprivileged user namespaces (sysctl kernel.unprivileged_userns_clone=0 where supported) to prevent untrusted users from creating the required qdisc configuration; the trade-off is that this can break container runtimes and sandboxes that legitimately rely on user namespaces. The fixed code simply skips corruption for fully non-linear packets, so patching has no functional downside.

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

CVE-2026-31675 vulnerability details – vuln.today

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