製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性
Title LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。ipv6_rpl_srh_rcv()はRFC 6554のソースルーティングヘッダーを展開し、次のセグメントをipv6_hdr-daddrに入れ替えた上で再圧縮し、古いヘッダーを取り除いて新しいヘッダーとIPv6ヘッダーを戻します。再圧縮されたSRHが拡大する際にmac_lenのヘッドルームを確保します。入れ替えによりセグメントがdaddrと共有する共通プレフィックス長が減る場合(CmprI=0, CmprE0, seg[0][0] != daddr[0]の場合は最大+8バイトまで)再圧縮したヘッダーが受信時より大きくなる可能性があります。pskb_expand_head()はsegments_left == 0のときにのみ実行されていたため、初期のセグメントではプッシュ時に未検査のヘッドルームを消費していました。skb_push()がデータ前にskb-mac_lenバイト未満を残してしまうと、skb_mac_header_rebuild()内のskb_set_mac_header(skb, -skb-mac_len)が(data - head) - mac_lenをu16 mac_headerフィールドに格納し、オーバーフローして約65530となり、その後のmemmove()がskb-headから約64KiB先までmac_lenバイトを書き込みます。この脆弱性は、CmprI=0, CmprE=15の二つのセグメントを持つタイプ3 SRHを含むAF_INET6/SOCK_RAW/IPV6_HDRINCLパケットをloデバイスで送信すると、一回通過後にヘッドルームが8に達し、KASANによってipv6_rthdr_rcvで14バイトの範囲外書き込みが報告される問題です。この問題は、残りの空き容量がプッシュサイズとmac_lenの合計より少ない場合にヘッドを拡張し、再構築後のMACヘッダーが収まるように十分な追加領域を要求することで修正されました。

Possible impacts ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date May 21, 2026, midnight
Registration Date June 29, 2026, 11:18 a.m.
Last Update June 29, 2026, 11:18 a.m.
CVSS3.0 : 緊急
Score 9.8
Vector CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 5.11 以上 5.15.209 未満
Linux Kernel 5.16 以上 6.1.175 未満
Linux Kernel 5.7 以上 5.10.258 未満
Linux Kernel 6.13 以上 6.18.27 未満
Linux Kernel 6.19 以上 7.0.4 未満
Linux Kernel 6.2 以上 6.6.140 未満
Linux Kernel 6.7 以上 6.12.86 未満
Linux Kernel 7.1
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月29日]
  掲載
June 29, 2026, 11:18 a.m.

NVD Vulnerability Information
CVE-2026-43501
Summary

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

ipv6: rpl: reserve mac_len headroom when recompressed SRH grows

ipv6_rpl_srh_rcv() decompresses an RFC 6554 Source Routing Header, swaps
the next segment into ipv6_hdr->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).

pskb_expand_head() was gated on segments_left == 0, so on earlier
segments the push consumed unchecked headroom. Once skb_push() leaves
fewer than skb->mac_len bytes in front of data,
skb_mac_header_rebuild()'s call to:

skb_set_mac_header(skb, -skb->mac_len);

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

A single AF_INET6/SOCK_RAW/IPV6_HDRINCL 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 ipv6_rthdr_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.

Publication Date May 21, 2026, 10:16 p.m.
Registration Date May 22, 2026, 4:07 a.m.
Last Update May 23, 2026, 1:33 a.m.
Related information, measures and tools
Common Vulnerabilities List