JVNDB-2026-024875 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。ipv6: ページ化割り当てパス上のfraggapを考慮する__ip6_append_data()関数内で、ページ化割り当ての分岐が選択された場合(MSG_MORE / NETIF_F_SG / 大きなfraglen)、alloclenとpagedlenは以下のように計算されます。alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen。datalenは既にfraggapを含んでいます(datalen = length + fraggap)。fraggapがゼロでない場合、このデータは最初のskbのものではなく、transhdrlenはゼロになります。前のskbから持ち越されたfraggapバイトは、新しいskbの線形領域にあるフラグメントヘッダーの直後にコピーされます。そのため、線形領域はfraggapバイト分だけ不足し、pagedlenは同じ分だけ過大に計算されており、このコピー処理がskb->endを超えてskb_shared_infoの末尾部分に書き込む原因となっていました。権限のないユーザーは、MSG_MOREとMSG_SPLICE_PAGESを組み合わせたUDPv6ソケットを用いることで、この脆弱性をトリガーできます。この不適切な計算はコミット773ba4fe9104("ipv6: avoid partial copy for zc")で導入されました。その前のコミットce650a166335("udp6: Fix __ip6_append_data()'s handling of MSG_SPLICE_PAGES")までは、負のコピー値が -EINVAL を返していました。しかし、その後のコミットでMSG_SPLICE_PAGESがこの状態でも進行可能となり、データ破損が引き起こされるようになりました。ページ化されない分岐では、alloclenはfraglenに設定されており、これは既にfraggapを含むdatalenを考慮しています。今回の修正により、ページ化分岐も同様にalloclenにfraggapを加え、pagedlenからfraggapを減じる形で調整されました。この調整後、ページ化パスのコピーサイズが -fraggap になることはなくなり、古い計算を説明するコメントは削除されました。正当なMSG_SPLICE_PAGESケースにおける負のコピーは想定されなくなったため、負のコピー値チェックからMSG_SPLICE_PAGES例外も削除されました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/04 |
| 登録日 | 2026/07/24 |
| 最終更新日 | 2026/07/24 |



