CVE-2026-43501

Source
https://cve.org/CVERecord?id=CVE-2026-43501
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-43501.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-43501
Downstream
Related
Published
2026-05-21T12:17:49.885Z
Modified
2026-06-11T19:59:09.805843678Z
Severity
  • 9.8 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
ipv6: rpl: reserve mac_len headroom when recompressed SRH grows
Details

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

ipv6: rpl: reserve mac_len headroom when recompressed SRH grows

ipv6rplsrhrcv() decompresses an RFC 6554 Source Routing Header, swaps the next segment into ipv6hdr->daddr, recompresses, then pulls the old header and pushes the new one plus the IPv6 header back. The recompressed header can be larger than the received one when the swap reduces the common-prefix length the segments share with daddr (CmprI=0, CmprE>0, seg[0][0] != daddr[0] gives the maximum +8 bytes).

pskbexpandhead() was gated on segmentsleft == 0, so on earlier segments the push consumed unchecked headroom. Once skbpush() leaves fewer than skb->maclen bytes in front of data, skbmacheaderrebuild()'s call to:

skb_set_mac_header(skb, -skb->mac_len);

will store (data - head) - maclen into the u16 macheader field, which wraps to ~65530, and the following memmove() writes mac_len bytes ~64KiB past skb->head.

A single AFINET6/SOCKRAW/IPV6HDRINCL packet over lo with a two segment type-3 SRH (CmprI=0, CmprE=15) reaches headroom 8 after one pass; KASAN reports a 14-byte OOB write in ipv6rthdr_rcv.

Fix this by expanding the head whenever the remaining room is less than the push size plus mac_len, and request that much extra so the rebuilt MAC header fits afterwards.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43501.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
8610c7c6e3bd647ff98d21c8bc0580e77bc2f8b3
Fixed
bde199c72d319a4e207f88daabc888317504e2fb
Fixed
be1fa0aa9b4fdd5a8b7a61ba520a690a68391e6e
Fixed
0a9e8053f1f8a8e1bfc1dd61ffe67be6c1180402
Fixed
8e8be63465a5e80394c70324603dfea1bfdad48f
Fixed
4babc2d9fda2df43823b85d08a0180b68f1b0854
Fixed
c261d07a80576dc8ccf394ef8f074f8c67a06b37
Fixed
7398ebefbfd4f8a31d4f665a4213302fa995494b
Fixed
9e6bf146b55999a095bb14f73a843942456d1adc

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-43501.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.7.0
Fixed
5.10.258
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.209
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.175
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.140
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.86
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.27
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.0.4

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-43501.json"