JVNDB-2026-016726 | |
LinuxのLinux Kernelにおける到達可能なアサーションに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、次の脆弱性が修正されました:ipv6のip6_datagram_send_ctl()におけるオーバーフローを回避する問題です。イーミン・チアン氏より報告されました。IPv6のsendmsg補助データパスにてローカルでトリガ可能なカーネルバグが発見されました。これによりskb_under_panic()を介してカーネルパニックが発生し(ローカルDoS)、システムが停止します。根本原因は16ビット長のアキュムレータ(struct ipv6_txoptions::opt_flen、型__u16)と最後の宛先オプションヘッダーを指すポインタ(opt-dst1opt)との不整合にあります。複数のIPV6_DSTOPTS制御メッセージ(cmsg)が渡された際にこの問題が発生します。include/net/ipv6.hにおいてstruct ipv6_txoptions::opt_flenは__u16型であり、ラップの可能性があります(291-307行、特に298行)。net/ipv6/datagram.cのip6_datagram_send_ctl()関数では繰り返されるIPV6_DSTOPTSを受け入れopt_flenを加算しますが、重複は排除されません(909-933行)。net/ipv6/ip6_output.cの__ip6_append_data()関数はopt-opt_flen+opt-opt_nflenでヘッダーサイズやヘッドルームを計算しています(1448-1466行、特に1463-1465行)。__ip6_make_skb()はopt-opt_flenが非ゼロの場合にipv6_push_frag_opts()を呼び出します(1930-1934行)。ipv6_push_frag_opts()やipv6_push_exthdr()はdst1optに基づくipv6_optlen(opt-dst1opt)でプッシュサイズを決定しています(1179-1185行および1206-1211行)。問題点は次の通りです。1. opt_flenは16ビットのアキュムレータであること(include/net/ipv6.hの298行で定義)。2. ip6_datagram_send_ctl()は繰り返しのIPV6_DSTOPTS cmsgを受け入れ、毎回opt_flenを加算していますが、重複排除措置がありません(net/ipv6/datagram.cの909-933行)。大量の大きなIPV6_DSTOPTS cmsgを提供するとopt_flenはラップしますが、dst1optは依然として大きな(2048バイトの)宛先オプションヘッダーを指し続けます。PoC(poc.c)では32個のhdrlen=255のcmsg(長さ2048バイト)と1個のhdrlen=0のcmsg(長さ8バイト)を送り、合計65544バイト加算してopt_flenは16ビットのため8にラップし、一方でdst1optは2048バイトの最後のcmsgを指します。3. 送信パスはラップしたopt_flenに基づきヘッダーサイズを計算するため(net/ipv6/ip6_output.cの1463-1465行)、実際にプッシュされる長さを過小評価します。4. skbを構築するときはdst1optの長さに基づいてプッシュされるため、opt_flenのラップは制限になりません(net/ipv6/ip6_output.cの1930-1934行、net/ipv6/exthdrs.cの1179-1185および1206-1211行)。ヘッドルームが不足してskb_push()がアンダーフローするとskb_under_panic()を引き起こしBUG()となり、それによりカーネルパニックが発生します。IPV6_DSTOPTS cmsg経路は対象のネットワーク名前空間にCAP_NET_RAW権限を要求します。ルートまたはCAP_NET_RAW権限を持つ任意のプロセスがこの脆弱性を発動可能であり、ユーザー名前空間が有効な場合は権限のないuid=1000のユーザでも名前空間CAP_NET_RAWを取得してトリガ可能です。影響はローカルDoSであり、カーネルのBUGパニックやクラッシュを引き起こします。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/04/13 |
| 登録日 | 2026/05/22 |
| 最終更新日 | 2026/05/22 |



