JVNDB-2026-013638 | |
LinuxのLinux Kernelにおける整数オーバーフローの脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:net: stmmac: チェーンモードにおける整数アンダーフローの修正です。jumbo_frm()のチェーンモード実装は無条件にlen = nopaged_len - bmax;を計算しています。ここで、nopaged_lenはskb_headlen(skb)(線形バイトのみ)を指し、bmaxはBUF_SIZE_8KiBまたはBUF_SIZE_2KiBです。しかし、呼び出し元のstmmac_xmit()はskb-len(ページフラグメントを含む全長)に基づきjumbo_frm()を呼び出すかどうかを決定しています:is_jumbo = stmmac_is_jumbo_frm(priv, skb-len, enh_desc); パケットの線形部分が小さい(nopaged_len = bmax)がページフラグメントにより全長が大きい場合(skb-len bmax)、引き算は符号なし整数でラップアラウンドし巨大なlen値(約0xFFFFxxxx)となります。これによりwhile (len != 0)ループが数十万回実行され、skb-data + bmax * iのポインタがskbバッファを大幅に超えてdma_map_single()に渡されます。IOMMU非搭載のSoC(stmmacの典型的な展開環境)では、これは任意のカーネルメモリをDMAエンジンにマップすることになり、カーネルメモリの情報漏洩およびハードウェアからの潜在的なメモリ破損を引き起こします。この問題はbuf_lenというローカル変数を導入し、min(nopaged_len, bmax)に制限することで修正しました。これによりlen = nopaged_len - buf_lenの計算は常に安全となります。線形部分が単一ディスクリプタに収まる場合はlenが0となり、while (len != 0)ループは自然にスキップされ、その後stmmac_xmit()内のフラグメントループがページフラグメントを処理します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 9.8 (緊急) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/04/24 |
| 登録日 | 2026/04/30 |
| 最終更新日 | 2026/04/30 |



