Claude Codeが23年間潜伏していたLinuxの脆弱性を発見

#はじめに
リーヌスの法則には「十分な目玉があれば、すべてのバグは洗い出される」という有名な言葉がある。何十年もの間、オープンソースコミュニティはこの原則を頼りに、Linuxカーネルのような基盤インフラの安全性を確保してきた。しかし、その「目玉」がもはや人間ではなくなり、これまで不可能と思われていた規模と深さでコードを処理できるようになったとしたらどうなるだろうか。
先日開催されたAIセキュリティカンファレンス「[un]prompted」において、AnthropicのFrontier Red Teamに所属するNicholas Carlini氏は、レガシーコードのセキュリティに関する我々の長年の常識を覆した。彼は、高度なClaude Opus 4.6モデルを搭載したClaude Codeが、正確に23年間も白日の下に隠れていたLinuxカーネルの重大かつリモート実行可能な脆弱性を、自律的に発見しエクスプロイトを作成するデモンストレーションを行ったのである。
これは単なる静的解析ツールの漸進的なアップデートではない。コードベースの監査、防御的なパッチ適用、そしてサイバーセキュリティの経済性全体へのアプローチを根本から再定義する、歴史的な転換点である。
#何が起きたのか
AnthropicのFrontier Red Teamが展開した手法は、驚くほどシンプルでありながら破壊的なまでに効果的だった。Carlini氏と彼のチームは、従来の人間のチームでは太刀打ちできない規模で動作する、マルチパスの「ブルートフォース(総当たり)」AI監査パイプラインを構築したのである。
このAI主導のセキュリティ監査プロセスは、大きく3つのフェーズで構成された。
- フェーズ1: 深い意味的解析: Claude Codeは、Linuxカーネルリポジトリの全ソースファイルを体系的に読み込んだ。事前に定義された正規表現パターンや抽象構文木(AST)のマッチングに依存するのではなく、ClaudeはCコードの意味(セマンティクス)を解析し、複雑なステートマシンやポインタのライフサイクルを追跡した。
- フェーズ2: 自動検証: 別のClaudeエージェントのグループが、フラグの立ったコードパスを受け取り、機能するPoC(概念実証)エクスプロイトの記述を試みた。これにより100%に近い検証率を達成し、従来の静的アプリケーションセキュリティテスト(SAST)ツールで課題となっていた「誤検知による疲弊」を完全に排除した。
- フェーズ3: 修正案の生成: 検証が完了すると、エージェントは攻撃ベクターを塞ぐための構造的に健全なカーネルパッチを提案した。
この取り組みの最大の成果は、NFSv4(Network File System version 4)デーモンに存在する複雑なスタックバッファオーバーフローの発見である。この脆弱性のあるコードは2003年に導入され、20年以上にわたって何千回もの人間の監査、リファクタリング、自動ファジングキャンペーンを生き延びてきたものだった。
これがまぐれではないことを証明するかのように、Carlini氏はClaude Opus 4.6をGhost CMS(GitHubで5万以上のスターを集める大人気プラットフォーム)にも適用した結果を明らかにした。わずか90分足らずで、AIはゼロデイのブラインドSQLインジェクションを発見し、管理者APIキーの抽出に成功したのである。
#なぜ重要なのか
世界で最も厳密に監査されているコードベースの一つから23年前の脆弱性が発見されたという事実は、不都合な現実を我々に突きつける。つまり、現在のセキュリティツールは、複雑で状態を持つ(statefulな)バグに対して根本的に力不足であるということだ。
金融市場は直ちにこのデモンストレーションの重大性を認識した。プレゼンテーションの後、CrowdStrikeやPalo Alto Networksといった業界の巨人を含む主要なサイバーセキュリティ銘柄は急落した。投資家たちは、「ゼロデイ」エクスプロイトを発見するための資金的および技術的障壁がほぼゼロにまで低下する未来と向き合い始めている。
歴史的に、NFSv4のスタックオーバーフローのような脆弱性を見つけるには、カーネルの内部構造やネットワークプロトコルに関する深い専門知識を持つ、高度に専門化された人間のエンジニアによる何ヶ月もの献身的なリサーチが必要だった。このプロセスを自動化したことで、Claude Codeは攻撃者と防御者の間の非対称性を劇的に変化させた。もしAIが週末だけで23年前のバグを包括的にマッピングし、エクスプロイトできるのであれば、「実戦テスト済み」のソフトウェアという概念は根本的な見直しを迫られる。
#技術的な影響
これがなぜ技術的に大きな飛躍なのかを理解するには、従来のツールが23年間このバグを見つけられなかった理由に目を向ける必要がある。
syzkallerなどの従来のファザーは、メモリ破壊の発見には信じられないほど威力を発揮するが、カバレッジガイド型の変異(mutation)に大きく依存している。そのため、複雑で多段階のステートマシンとのやり取りを必要とするコードパスに到達するのは非常に困難である。NFSv4のバグを引き起こすには、クライアントが不正な複合リクエストの特定のシーケンスを送信し、厳密な前提条件のセットを満たして初めてバッファオーバーフローに到達できた。標準的なファザーは、有効なチェックサムを生成したり、プロトコルの厳密な状態要件を満たしたりする段階で、ほぼ確実に身動きが取れなくなる。
しかし、Claude Codeはステートマシンを推測する必要はなかった。ただそれを読み、理解したのである。
以下は、Claudeが悪用できた意味的な死角(セマンティック・ブラインドスポット)のパターンを示す、簡略化された概念的な例である。
/* Conceptual example of the semantic bug pattern */
int process_nfs4_compound(struct nfsd4_compoundargs *argp, void *buf) {
int op_count = argp->opcnt;
char local_buffer[256];
// Traditional SAST sees a bounds check here and marks it safe
if (op_count > MAX_OPS) {
return -EINVAL;
}
// However, an obscure protocol downgrade state allows
// op_count to be manipulated AFTER the initial check
trigger_legacy_fallback(argp);
// Semantic understanding reveals that argp->opcnt is now unbound,
// leading to a stack overflow during the memory copy
memcpy(local_buffer, buf, argp->opcnt * sizeof(struct nfsd4_op));
return 0;
}
静的解析ツールは最初の境界チェックを見て変数が安全であると判断するが、Claude Opus 4.6は複数の関数呼び出しにまたがって変数のライフサイクルを追跡することができた。trigger_legacy_fallback()が状態を変化させ、それ以前の安全性チェックを無効化してしまうことを認識したのである。これには、これまではシニアクラスのセキュリティリサーチャーにしかできなかったレベルの文脈的な推論が要求される。
#今後の展望
我々はAIセキュリティのデュアルユース(軍民両用)時代に突入しつつある。
防御側にとって、この技術は魅力的な約束をもたらす。何十年分もの技術的負債を体系的に根絶できるという可能性である。組織はAIエージェントの内部クラスターを展開してソフトウェアサプライチェーン全体を監査し、野生で兵器化される前に脆弱性を特定してパッチを当てることができるようになる。「デフォルトでセキュア」なソフトウェアという夢が、突如として手の届くところに来ている。
しかし、攻撃側の影響も否定できない。Carlini氏は、Anthropicが最近16のOpusエージェントのチームに、完全にゼロからRustで機能するCコンパイラを書かせることに成功したと指摘した。そのレベルのアーキテクチャ設計やコーディングの習熟度がオフェンシブセキュリティ(攻撃的セキュリティ)に向けられたとき、脅威のランドスケープは指数関数的に変化する。脅威アクターたちは間もなく、24時間365日稼働する自動化された非常に有能な脆弱性リサーチパイプラインにアクセスできるようになるだろう。
適応するために、業界は事後対応的なパッチ適用から脱却しなければならない。LinuxカーネルにRustを統合しようとする現在進行形の取り組みが正当化されるように、メモリセーフな言語への大規模な移行が進むはずだ。そして、AIの攻撃者と同じ速度と規模で動作する、AI主導の自律型防御システムの配備も進むだろう。
#おわりに
Claude CodeによるLinuxカーネル内の23年前のバグの発見は、ソフトウェアエンジニアリングコミュニティに対する決定的な警鐘である。これは、我々のレガシーコードベースが依然として重大な脆弱性に満ちており、それらを見つけ出す十分な時間と推論能力を持つ誰か、あるいは「何か」を待っている状態であることを証明している。
特定のカーネルのバグにはすでにパッチが当てられているが、それを見つけるために使用された手法は公開されている。AIモデルのコンテキスト長と推論能力が拡大し続ける中、サイバーセキュリティ業界は急速に進化しなければならない。自動化された防御者と自動化された攻撃者の競争は公式に始まっており、もはや後戻りはできない。