Linuxカーネルに境界外書き込みの脆弱性、ローカル攻撃者がroot権限へ昇格可能に

新たに公開されたLinuxカーネルの境界外書き込みの脆弱性「CVE-2026-72018」を悪用すると、CAP_NET_ADMIN権限を持つローカル攻撃者がroot権限へ昇格できます。

この脆弱性は、Shared Memory Communications Direct(SMC-D)サブシステムが使用するDIBSループバック実装に存在します。CVSS 3.1のスコアは7.8で、深刻度は「High(高)」と評価されています。

原因は、dibs_loopbackドライバーのmove_data()ルーチンに境界チェックが欠けていることです。

問題の関数は、memcpy()を通じてDirect Memory Buffer(DMB)にデータをコピーします。しかし、指定されたオフセットと書き込み長の合計が、割り当て済みのDMBの範囲内に収まっているかどうかを検証していません。

SMCは、高スループットの接続でデータコピーのオーバーヘッドを減らすためにIBMが設計したプロトコルです。SMC-RがRDMA対応ハードウェアを使うのに対し、SMC-Dは共有メモリを介した通信を想定しています。

SMC-Dはこれまで、IBM Z環境や専用のISMハードウェアと結び付けて語られることが多く、通常のコード監査の対象になりにくい状況でした。

ところが、仮想トランスポートのdibs_loopbackが導入されたことで、専用ハードウェアを持たない一般的なx86 Linuxシステムでも、SMC-Dの関連パスに到達できるようになりました。

XBOWの研究者らは、SMC Connection Layer Control(CLC)のハンドシェイクにある攻撃者制御可能なフィールドが、バッファオフセットの計算に影響を与えうることを突き止めました。

具体的には、dmbe_idxとdmbe_sizeの値が送信オフセットの算出に関与し、DMBトークンが書き込み先のバッファを決定します。

影響を受けるコードは、算出されたオフセットをそのままDIBSループバック層に渡していました。その結果、チェックのないmemcpy()が、16KBのDMB割り当て領域の外側へ書き込む可能性がありました。

この概念実証(PoC)が注目されたのは、得られた攻撃プリミティブが著しく制限されたものだったためです。研究者らが得たのは、一般的な任意書き込みではありません。一部を制御できる、16KB境界にアライメントされたオフセットへの、16バイトのゼロ書き込みでした。

それでも研究者らは、この制約下のプリミティブでLinuxカーネルの認証情報オブジェクトに影響を与えられることを実証しました。メモリを巧みに配置(グルーミング)し、ゼロ書き込みがプロセスのcred構造体内にある実効UIDなどのID関連フィールドと重なるようにします。これにより、カーネルがそのプロセスをrootとして扱うように仕向けることができます。

ローカルでの悪用にはCAP_NET_ADMINが必要です。研究によると、この権限はSMC-Dの関連設定を初期化し、nftablesのNFQUEUEルールでループバックのCLCトラフィックを傍受・改変するために必要になります。

権限を持たないローカルユーザーが悪用できる脆弱性と比べれば、影響を受ける範囲は限られます。ただし、CAP_NET_ADMINは、コンテナ化されたワークロードやネットワークサービス、特権を持つアプリケーションコンポーネントで利用できることが多い権限です。

XBOWは、カーネルの緩和策を無効にしたLinux 7.1.0-rc6上のUbuntu 24.04で、動作するエクスプロイトを確認したと報告しています。

100回の個別ブートで行ったテストでは、PoCが22回でroot権限の取得に成功しました。制約の多いメモリ破壊プリミティブでも、ヒープの状態が好条件であれば、実用的な権限昇格経路になりうることを示しています。

カーネルのメンテナーは、offset + sizeが登録済みのDMB長を超えるリクエストを拒否する検証を追加して、この問題を修正しました。該当する場合はメモリコピーを行わず、-EINVALを返します。

管理者は、修正を含むベンダー提供のカーネルアップデートを適用してください。CVEレコードでは、影響を受けないメンテナンスリリースとして、Linux 6.12.97、6.18.40、7.1.5以降が示されています。

1万6,000以上のSOCチームがANY.RUNを導入し、脅威調査の効率化と手作業の削減を実現しています。 チームでの活用を検討する

翻訳元: https://cyberpress.org/linux-kernel-out-of-bounds-write-flaw/

本記事は cyberpress.org の記事を翻訳・要約したものです。