概要
JFrogセキュリティ研究チームは2026年6月25日、Linuxカーネルに存在するローカル特権昇格(LPE)脆弱性「DirtyClone」(CVE-2026-43503)の詳細な解析レポートと概念実証(PoC)コードを公開した。CVSSスコアは8.8(高)で、ローカルユーザーがCAP_NET_ADMINケーパビリティを利用してroot権限を取得できる。この脆弱性はIPsecサブシステムのパケット複製処理における安全フラグの欠落に起因し、DirtyFragと呼ばれる脆弱性ファミリーの新たな亜種として位置付けられる。影響を受けるディストリビューションはDebian、Ubuntu、Fedoraで、パッチは2026年5月21日に本流へマージ済みであり、最初の修正版はLinux v7.1-rc5(2026年5月24日リリース)となる。
技術的な根本原因
脆弱性の核心は、カーネルの__pskb_copy_fclone()関数がネットワークパケットをクローン化する際に、SKBFL_SHARED_FRAGフラグ(パケットのフラグメントがファイルバックメモリ=ページキャッシュを参照していることを示すマーカー)を正しく保持しない点にある。このフラグが失われたクローンパケットは、後続の処理系から「通常の書き込み可能なバッファ」として扱われる。その結果、IPsecのインプレース復号処理(esp_input())が同一バッファ上で実行されると、本来変更してはならないファイルバックメモリ—すなわちカーネルのページキャッシュ—を上書きしてしまう。ディスク上のファイル自体は変更されず、改ざんはメモリ内にのみ存在するため、監査ログにも痕跡が残らないという特徴を持つ。
7段階の攻撃パターン
JFrogは攻撃の手順を7段階に分けて解説している。①/usr/bin/suなどの特権バイナリをメモリマップし、②vmsplice/spliceを使ってそのファイルバックメモリページをソケットバッファ(skb)に接続する。③ループバックIPsecトンネルをローカルに構築し、④esp_input()の復号処理をトリガーして同一バッファへの上書きを発生させる。⑤AES-CBCのIVを操作することで書き込み内容を予測可能にし、⑥/usr/bin/suの認証ロジックをバイパスするよう命令バイト列を書き換える。⑦ページキャッシュから改ざん済みのコードが実行され、root権限を取得する。
攻撃にはCAP_NET_ADMINケーパビリティが必要だが、Debianおよびデフォルト設定のFedoraでは非特権ユーザー名前空間を通じてこのケーパビリティを入手できる。一方、Ubuntu 24.04以降はAppArmorによって非特権名前空間の作成が制限されており、デフォルトの攻撃経路はブロックされる。
影響範囲と対策
影響を受けるディストリビューションはDebian、Ubuntu(22.04 LTS / 24.04 LTS / 25.10 / 26.04 LTS)、Fedoraで、CVE-2026-43284・CVE-2026-43500・CVE-2026-46300を含むDirtyFragファミリー全体のパッチが適用されていないカーネルが対象となる。
根本的な対策はカーネルをアップデートしてシステムを再起動することだ。カーネル更新のみでは不十分で、再起動によって旧カーネルから切り替えることが必須となる。即時適用が困難な場合の暫定的な緩和策として、kernel.unprivileged_userns_clone=0を設定して非特権名前空間経由のCAP_NET_ADMIN取得を遮断する方法と、esp4・esp6・rxrpcカーネルモジュールをブラックリスト化する方法がある。ただし後者はIPsecやAFSの通信機能に影響を与えるため注意が必要だ。
タイムライン
JFrogは2026年5月19日に独立して本脆弱性を再発見・報告しており、パッチは2026年5月21日にLinux mainlineへマージされ(最初の修正タグはv7.1-rc5、2026年5月24日リリース)、CVEは5月23日に採番された。同チームのPoCコードおよび詳細解析レポートは2026年6月25日に公開されており、攻撃手法の透明な開示によって防御側のパッチ適用を促すことが目的とされている。