Skip to main content

Linux Kernel CVE-2026-63984

| EUVDEUVD-2026-45757 CRITICAL
2026-07-19 Linux GHSA-6hh9-w4p2-c5qm
Critical
Disputed · 9.8 Vendor: Linux
Share

Severity by source

Sources disagree (Medium–Critical)
Vendor (Linux) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.4 HIGH

Network-reachable, no auth (AV:N/PR:N); AC:H because it requires RPL source routing enabled plus an unrealistic 127-segment header; write-only corruption gives I:H/A:H, C:N.

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

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Jul 20, 2026 - 16:40 vuln.today
CVSS changed
Jul 20, 2026 - 15:22 NVD
9.8 (CRITICAL)
Patch available
Jul 19, 2026 - 17:19 EUVD
CVE Published
Jul 19, 2026 - 14:56 cve.org
CRITICAL 9.8
CVE Published
Jul 19, 2026 - 14:56 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ipv6: rpl: fix hdrlen overflow in ipv6_rpl_srh_decompress()

ipv6_rpl_srh_decompress() computes:

outhdr->hdrlen = (((n + 1) * sizeof(struct in6_addr)) >> 3);

hdrlen is __u8. For n >= 127 the result exceeds 255 and silently truncates. With n=127 (cmpri=15, cmpre=15, pad=0, hdrlen=16):

(128 * 16) >> 3 = 256, truncated to 0 as __u8

The caller in ipv6_rpl_srh_rcv() then places the compressed header at buf + ((ohdr->hdrlen + 1) << 3). With hdrlen=0 this is buf + 8, but the decompressed region occupies buf[0..2055] (8-byte header plus 128 full addresses). The compressed header overlaps the decompressed data, and ipv6_rpl_srh_compress() writes into this overlap, corrupting the routing header of the forwarded packet.

The existing guard at exthdrs.c:546 checks (n + 1) > 255, which prevents n+1 from overflowing unsigned char (the segments_left field), but does not prevent the computed hdrlen from overflowing __u8. n=127 passes because 128 <= 255, yet hdrlen=256 does not fit.

Tighten the bound to (n + 1) > 127. This caps n at 126, giving hdrlen = (127 * 16) >> 3 = 254, which fits in __u8. The compressed header then lands at buf + ((254 + 1) << 3) = buf + 2040, exactly past the decompressed region (buf[0..2039]). No overlap. 127 segments is well beyond any realistic RPL deployment.

AnalysisAI

Out-of-bounds heap corruption in the Linux kernel's IPv6 RPL Source Routing Header handling (net/ipv6/exthdrs.c) allows remote attackers to corrupt the routing header of forwarded packets by sending a crafted compressed SRH. The bug stems from a __u8 truncation of the computed hdrlen in ipv6_rpl_srh_decompress(): with n=127 segments the value (128*16)>>3 = 256 wraps to 0, causing the compressed header to overlap the decompressed region so ipv6_rpl_srh_compress() writes into kernel memory it should not. Rated CVSS 9.8 but EPSS is only 0.18% (7th percentile); no public exploit and no CISA KEV listing exist at time of analysis, and exploitation requires an unrealistic 127-segment header on a node with RPL source routing enabled.

Technical ContextAI

RPL (Routing Protocol for Low-Power and Lossy Networks, RFC 6550/6554) uses a compressed IPv6 Segment Routing Header (SRH) to carry a list of intermediate hop addresses. When a Linux node acting as an RPL router receives such a packet, ipv6_rpl_srh_rcv() calls ipv6_rpl_srh_decompress() to expand the compressed address list back into full 128-bit in6_addr entries, then re-compresses it for forwarding. The defect is a classic integer/field truncation feeding an out-of-bounds write (CWE-787 out-of-bounds write / CWE-190 integer overflow, though the input lists CWE as N/A): hdrlen is a __u8 header field, and the arithmetic ((n+1)*sizeof(in6_addr))>>3 can exceed 255 for large segment counts. The existing guard at exthdrs.c:546 only checked (n+1) > 255 to protect the segments_left byte, missing that hdrlen itself overflows a byte first. The affected code path exists only when the kernel is built with IPv6 RPL segment-routing support and the feature is active on the receiving interface. Per the EUVD CPE data (cpe:2.3:a:linux:linux) this is the mainline Linux kernel; the fix tightens the bound to (n+1) > 127, capping n at 126 so hdrlen maxes at 254 and the compressed header lands exactly past the decompressed region with no overlap.

RemediationAI

Vendor-released patch: upgrade to a fixed stable kernel - 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, 7.0.12, or 7.1 (or later on your branch) - or apply your distribution's backport of the exthdrs.c fix commits listed at git.kernel.org (e.g. https://git.kernel.org/stable/c/c0487a9c1e116cf349e2d1f302d9019670460858). If immediate patching is not possible, reduce exposure by disabling IPv6 RPL source-route processing where it is not needed: nodes that are not intentionally acting as RPL routers should not have RPL segment-routing enabled, which removes the vulnerable code path entirely at the cost of breaking any legitimate RPL forwarding on that host. As additional compensating controls, drop or filter inbound IPv6 packets carrying RPL Source Routing Headers (IPv6 routing header type 3) at the network edge or on the host firewall, and restrict which interfaces forward such traffic - the trade-off is that these filters affect only environments that legitimately use RPL, and in the common case where RPL is unused they have no functional impact.

Vendor StatusVendor

SUSE

Severity: Critical
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-63984 vulnerability details – vuln.today

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