Dirty Cow、Dirty Pipe、そして Copy Fail──Linux LPE「三世代」の比較が照らす、AIが脆弱性を発見する時代の輪郭

Linux カーネルの特権昇格脆弱性に、ひとつのパターンがあります。数年に一度、「これは手口が違う」と言わせる事案が登場し、その都度セキュリティ業界の前提が少しずつ書き換えられてきました。

2016年の Dirty Cow、2022年の Dirty Pipe、そして2026年4月に公開された Copy Fail(CVE-2026-31431)。三つの脆弱性はいずれも「High(高)」評価、いずれも「非特権ユーザーが root を取れる」という点で共通しています。しかし、その「取り方」と「見つけ方」は、それぞれの時代を映すように変化してきました。

Copy Fail が他の二つと決定的に違うのは、脆弱性の構造だけではありません。AI が1時間でカーネルコードベースを走査して発見したという事実が、この事案に一段深い意味を与えています。同じころ、AI による脆弱性申請の急増を受けて、オープンソースセキュリティの基盤を支えてきたバグバウンティ制度が揺らぎ始めました。

この記事では、三世代の比較を入口に、「発見する側の変化」が何をもたらすのかを整理します。


三つの Linux カーネル特権昇格(LPE)脆弱性は、それぞれ異なる技術的特性を持つ。

Dirty Cow(CVE-2016-5195、2016年)は、仮想メモリサブシステムのコピーオンライトパスにおけるレース条件を悪用する。攻撃には複数回の試行が必要で、タイミングを外すとシステムがクラッシュする場合があった。カーネルバージョンへの依存度は低く広範に影響したが、確実性の低さが悪用の障壁となった。2016年発見後にすぐ修正されたが、発見から9年以上が経過した現在でもアクティブな悪用が報告されている。

Dirty Pipe(CVE-2022-0847、2022年)は、パイプバッファの flags フィールドの初期化不備を突く。Linux カーネル 5.8 以降に限定されており、特定のバージョン向けに精密なパイプバッファ操作を要した。ページキャッシュへの書き込みという手口は Copy Fail と共通するが、適用範囲の狭さと操作の複雑さが相違点だった。

Copy Fail(CVE-2026-31431、2026年)は、authencesnalgif_aeadsplice() の三つのコンポーネントが交差する論理バグ。レース条件も版依存もなく、732バイトの Python スクリプトが毎回確実に動作する。2017年以降のほぼ全ディストリビューション(Ubuntu、RHEL、Amazon Linux、SUSE など)が対象であり、ページキャッシュ経由の書き込みはディスクに痕跡を残さない。さらに、ページキャッシュがコンテナ境界を越えて共有されるため、コンテナからホストへの脱出プリミティブとしても機能する。

発見の経緯も異なる。Dirty Cow と Dirty Pipe は人間の研究者が独力で発見した。Copy Fail は、Theori社の研究者 Taeyang Lee 氏が AF_ALG の攻撃面を把握した上で、同社の AI 監査ツール Xint Code にその仮説を与え、crypto/ サブシステム全体を約1時間で走査させた結果として得られた。AI が単独で「面白い攻撃面」を見つけたわけではなく、人間の仮説と AI のスケールが分業した形での発見だった。

【編集部解説】

三世代を並べると見えてくるもの

三つの脆弱性を同じ尺度で並べると、ひとつの方向性が見えてきます。

Dirty Cowは「強力だが不確実」でした。レース条件を勝ち抜く必要があり、一度のスクリプト実行では必ずしも root が取れない。クラッシュリスクもある。「使える」脆弱性ではありましたが、信頼性という点では制約がありました。

Dirty Pipe は「確実だが狭い」でした。カーネル 5.8 以降という条件と、精密なパイプバッファ操作が必要という点で、対象環境と攻撃者のスキルの両方に制約がありました。それでも、読み取り専用ファイルのページキャッシュを書き換えられるという発見は、当時のセキュリティ研究者を驚かせました。

Copy Fail は「確実かつ広い」です。レース条件なし、バージョン制約なし、ディストリ固有のオフセットなし、コンパイル済みペイロードなし。発見者が「Portable・Tiny・Stealthy・Reliable」という四つの特性がすべて揃うことは稀だと述べているのは、まさにその通りです。通常、LPE 脆弱性は信頼性を上げると汎用性が下がり、汎用性を上げると痕跡が増えます。Copy Fail はその四つを同時に満たしました。

ページキャッシュへの書き込みというアプローチは Dirty Pipe と共通していますが、写真で言えば Dirty Pipe は「その一枚だけが焼けた」のに対し、Copy Fail は「ネガが無事でも焼きたいだけ焼ける」状態です。ディスク上のファイルは変わらない。sha256sumrpm -Vdebsums も何も検知しない。再起動すれば痕跡は消える──ただし、その間に取られた root 権限と仕掛けられた永続化は残ります。

三世代の比較が照らし出すのは、「脆弱性の質が上がってきた」という事実ではなく、「悪用の障壁が体系的に下がってきた」という方向性です。それは開発者の技量の問題ではなく、ツールと手法の進化の問題です。

AI という発見の道具が変えるもの

Copy Fail が特別なのは、脆弱性の構造よりも、その発見プロセスにある、と私は思っています。

Taeyang Lee 氏は AF_ALG + splice() が攻撃経路になり得るという仮説を持っていました。そこに AI が加わり、crypto/ サブシステム全体を約1時間で走査しました。その出力の中で、最も深刻だったのが Copy Fail でした。そして、公開された情報によれば、他にも high severity findings が存在し、現在も coordinated disclosure の途中にあります。

これが意味することを、少し具体的に考えてみましょう。一人の研究者が crypto/ 以外のサブシステムに同じ仮説を向け、同じツールを走らせた場合、何が出てくるでしょうか。カーネルは膨大です。全サブシステムを人間が網羅的にレビューすることは、現実的には困難です。だからこそ、2017年の最適化から2026年の発見まで9年かかったのです。

「AI 監査ツールが1時間で9年分の論理バグを見つける」という事実は、カーネル開発者・ディストリビューション・そして私たちインフラ運用者のすべてに、同じ時間軸の変化を突きつけています。今後、stable tree や LTS 系列のサブシステムに対し、同様のスキャンが継続的に走り、潜在脆弱性が短い周期で表面化することは、もはや「可能性」ではなく「標準の運用シナリオ」として織り込んでおくべき話になってきました。

2026年4月の Patch Tuesday は、Microsoft の月例パッチとして過去2番目の規模を記録しました。Trend Micro の Zero Day Initiative ヘッド、Dustin Childs 氏は「AI ツールによる申請増が背景にある可能性が高い。私たちのプログラムへの流入件数は実質的に3倍になっており、トリアージが課題になっている」と述べています。これは業界全体で起きている変化です。Copy Fail はその一つの結実です。

バグバウンティ制度が揺らいでいる

もう一つ、この時代の変化を象徴する出来事があります。

2026年1月末、ネットワークツール cURL が HackerOne のバグバウンティプログラムからの脱退を発表し、2月1日から実施しました。理由は、AI が生成した低品質な脆弱性申請が殺到し、少人数のメンテナーが対応しきれなくなったためです。cURL の作者 Daniel Stenberg 氏は「AI 生成かどうかにかかわらず、低品質で十分に調査されていない申請を送り込むインセンティブを排除するために撤退する」という趣旨を述べました。

同年3月27日、HackerOne の Internet Bug Bounty(IBB)プログラムが新規申請の受付を一時停止しました。2013年11月に Microsoft と Facebook のパートナーシップで設立され、オープンソースコミュニティのセキュリティを支えてきた制度です。HackerOne は「AI 支援の研究が発見のスピードと量を大幅に引き上げており、オープンソースの修正能力とのバランスが根本的に変化した」と説明しています。

この判断の影響を直接受けたのが Node.js です。IBB を資金源としていた Node.js のバグバウンティは、資金途絶を受けて停止に追い込まれました。コミュニティボランティアが支えるプロジェクトには、独立した予算がないからです。

なぜこうなったのでしょうか。

バグバウンティの経済モデルは、ある前提の上に成り立っていました。「脆弱性を見つけることは難しく、コストがかかる」という前提です。だからこそ、見つけた研究者に報酬を払うことが合理的でした。

AI はその前提を崩しました。脆弱性の「発見」コストは限りなくゼロに近づいています。一方、「修正」は依然として人間の作業であり、スケールしません。SOCRadar の CISO、Ensar Seker 氏は「AI は発見を産業化したが、修正能力は同じペースでスケールしていない。ボトルネックが移動した」と述べています。有効申請率は従来の約15%から5%以下に落ちたという報告もあります。

Copy Fail はこの文脈でも読めます。Xint Code が発見したのは、AI が「産業化した発見」の中から生まれた成果です。研究者の深い仮説と AI のスケールが組み合わさった、現時点では最も洗練された形での活用事例です。一方、大量に送り込まれる低品質申請はメンテナーを疲弊させています。同じ「AI 支援の脆弱性発見」が、用途によってまったく異なる効果を生んでいます。

防御側への問い

防御側の立場から、この変化をどう受け取るべきでしょうか。

一つ明確なことがあります。「発見の速度が上がった」ということは、「公開されてから対応するまでの時間が短くなった」ということでもあります。Copy Fail は2017年から潜在していましたが、実質的な危険にさらされた期間は、公開から各ディストリのパッチ配布までの数日間です。それは管理できます。

しかしその「数日間」の中に、CI ランナー、Kubernetes ノード、共有開発環境が含まれているとしたら、話が変わります。コンテナからホストへの脱出プリミティブとしての側面は、パッチ単体で閉じますが、未パッチのノードが一台でも混ざる移行期には防御深度として別の対策が必要です。

もう一つ考えておくべきことは、「AI が発見できるものを、攻撃者も発見できる」という対称性です。Xint Code のような AI 監査ツールは、防御側も使えます。Theori 社は coordinated disclosure に従い、修正のために時間を与えました。しかし、次の発見者が同じ選択をするかどうかは、制度ではなく倫理と動機の問題です。

バグバウンティ制度の揺らぎは、この倫理と動機の問題に経済モデルが介入できなくなりつつあることを示しています。HackerOne が「発見だけでなく修正にもインセンティブを」と述べているのは、この非対称性への対応の試みです。しかし、答えはまだ出ていません。

Copy Fail を「過去9年分のツケ」として受け取るなら、次の問いはこうなります。9年かけて積み上がった脆弱性の複合体を、AI が短い周期で次々に表面化させていく時代に、私たちの対応体制は設計されているでしょうか。

【用語解説】

LPE(Local Privilege Escalation:ローカル特権昇格)
一般ユーザー権限でシステムにアクセスした状態から、管理者(root)権限を取得する攻撃手法。リモートからの侵入とは区別される。

Dirty Cow(CVE-2016-5195)
2016年に公開された Linux カーネルの LPE 脆弱性。仮想メモリのコピーオンライト機構にあるレース条件を悪用。カーネル 2.6.22(2007年)以降が影響を受け、広範なシステムに9年以上潜在していた。

Dirty Pipe(CVE-2022-0847)
2022年に公開された Linux カーネルの LPE 脆弱性。パイプバッファの flags フィールド初期化不備を悪用し、読み取り専用ファイルのページキャッシュへの書き込みを可能にした。Linux カーネル 5.8 以降が対象。

Copy Fail(CVE-2026-31431)
2026年4月29日に公開された Linux カーネルの LPE 脆弱性。authencesnAF_ALGsplice() の交差点に生じた論理バグ。732バイトの Python スクリプトで、2017年以降のほぼ全ディストリビューションでのroot取得が可能。

ページキャッシュ
ファイルの内容をメモリ上に一時保存する仕組み。カーネルは実行時にこのキャッシュを参照するため、キャッシュを書き換えることでディスクを変更せずにプログラムの挙動を変えられる。

Coordinated Disclosure(協調的開示)
脆弱性の発見者がベンダーや開発者に事前通知し、修正が準備できた段階で公開する手続き。一方的な公開(Full Disclosure)との中間にある業界標準の慣行。

バグバウンティ(Bug Bounty)
脆弱性を発見・報告した研究者に報酬を支払うプログラム。企業や組織が自社製品の安全性向上を目的として運営する。IBB(Internet Bug Bounty)はオープンソースプロジェクトを対象とした業界横断的なプログラム。

IBB(Internet Bug Bounty)
HackerOne が運営するオープンソースソフトウェア向けのバグバウンティプログラム。2013年11月に Microsoft と Facebook のパートナーシップにより設立。これまでに150万ドル以上の報酬を支払ってきたが、2026年3月27日に AI 支援発見の急増を受けて新規申請を一時停止。

Xint Code
Theori 社が開発した AI 駆動のセキュリティ監査ツール。コードベースの構造的な論理バグや脆弱性パターンを大規模に走査する能力を持つ。Copy Fail の発見に使用された。

【参考記事】

Copy Fail: 732 Bytes to Root on Every Major Linux Distribution – Xint(外部)
発見者による公式技術解説。三世代との比較、発見プロセス、修正内容を詳述。

Linux cryptographic code flaw offers fast route to root – The Register(外部)
AI 支援発見の急増と Microsoft の大規模パッチ月間の文脈を報道。

AI-Led Remediation Crisis Prompts HackerOne to Pause Bug Bounties – Dark Reading(外部)
IBB 一時停止の背景と業界専門家のコメントを詳細に報道。

Curl ending bug bounty program after flood of AI slop reports – BleepingComputer(外部)
cURL が HackerOne を脱退した経緯と理由。低品質 AI 申請がメンテナーに与えた影響。

【関連記事】

Copy Fail(CVE-2026-31431)|732バイトのPythonがrootを奪う、AIが発見したLinuxカーネルの論理バグ(innovaTopia)
Copy Fail の技術構造、筆者による再現検証、AF_ALG の考察を詳述した本記事の姉妹記事。

Linux主要ディストリビューションに影響する732バイト脆弱性「Copy Fail」、各ベンダーの対応状況(innovaTopia)
Ubuntu・Red Hat・SUSE・Amazon Linux・Debian それぞれの初動対応を時系列で整理。

【編集部後記】

2016年、私は手元のGNU/Linux環境を暗号化してセキュリティを高めることに勤しんでいました。だから Dirty Cow が出たとき、戦慄しました。自分が守ろうとしていたものの足元に、実に9年前から穴が開いていたのですから。

2022年の Dirty Pipe は、自分の環境が影響を受けないと分かって、少し安心しました。カーネルのバージョンが、たまたま私の側に立っていた。

今回は違います。ディストリビューションの対応が遅れていることもあり、気を揉んでいます。

この三つの「私の状態」を並べてみると、脆弱性というものの性格が少し変わって見えます。脆弱性は、発見された瞬間に「過去の事実」になります。Dirty Cow は9年前から、Copy Fail は2017年からそこにあった。私が暗号化に勤しんでいたその時間、すでに存在していた。「気を揉む」のは技術的な話というより、その「知らずにいた時間」を遡ることになるからだと思っています。

AIが1時間でカーネルを走査して9年分の論理バグを見つける時代になった。それはつまり、「知らずにいる時間」が今後は短くなるということです。発見からパッチ配布までの窓が圧縮され、その窓の中に私たちのシステムがある。バグバウンティ制度が揺らいでいるのも、その圧縮の速度に人間の側が追いついていないからです。

Copy Fail では、Theori 社が誠実に開示のプロセスを踏んでくれました。しかし次の発見者が同じ選択をする動機を、私たちのエコシステムはどこまで用意できるでしょうか。パッチを当てながら、そのことも一度だけ考えてみてほしいと思っています。

投稿者アバター
森 祐佳 Solutions Engineer
一般社団法人生活情報基盤研究機構代表理事。とある会社でソリューションエンジニアの仕事をしています。 テクノロジーと人間の精神の関係を、哲学と実装の両面から探求してきました。 ITエンジニアとしてシステム開発やAI技術に携わる一方で、心の哲学や宇宙論の哲学、倫理学を背景に、テクノロジーが社会や人の意識に与える影響を考察しています。 AIや情報技術がもたらす新しい価値観や課題を、精神医学や公衆衛生の視点も交えながら分析し、「技術が人の幸福や生き方をどう変えるのか」という問いに向き合うことを大切にしています。 このメディアでは、AIやテックの最前線を紹介するだけでなく、その背後にある哲学的・社会的な意味を掘り下げ、みなさんと一緒に「技術と人間の未来」を模索していきたいと思います。