【活用ガイド】

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 (緊急) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 3.2.1 以上 5.10.253 未満
  • Linux Kernel 5.11 以上 5.15.203 未満
  • Linux Kernel 5.16 以上 6.1.169 未満
  • Linux Kernel 6.13 以上 6.18.23 未満
  • Linux Kernel 6.19 以上 6.19.13 未満
  • Linux Kernel 6.2 以上 6.6.135 未満
  • Linux Kernel 6.7 以上 6.12.82 未満
  • Linux Kernel 3.2
  • Linux Kernel 7.0

想定される影響

当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

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

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 整数オーバーフローまたはラップアラウンド(CWE-190) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31649
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31649
  2. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b7b8012193fd98236d7ae05d4b553f010a77b2ef)
  3. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/275bdf762e82082f064e60a92448fa2ac43cf95b)
  4. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/51f4e090b9f87b40c21b6daadb5c06e6c0a07b67)
  5. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2c91b39912278d0878f9ba60ba04d2518b18a08d)
  6. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/513e06735f5be575b409d195822195348b164e48)
  7. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/10d12b9240ebf96c785f0e2e4228318cd5f3a3eb)
  8. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6fca757c20396dc2e604dcc61922264e9e3dc803)
  9. 関連文書 : net: stmmac: fix integer underflow in chain mode - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a2b68a9a476b9544ff31f1fbcd5d80867a8a5e2f)
更新履歴

  • [2026年04月30日]
      掲載