Claude Code、23年間見つからなかったLinux脆弱性を発見
(mtlynch.io)- AnthropicのClaude Codeが、Linuxカーネルのリモート悪用可能な脆弱性を自動検出し、23年間見つかっていなかったNFSドライバのヒープバッファオーバーフローを発見
- 単に「セキュリティ脆弱性はどこにあるか?」というプロンプトだけでカーネル全体を解析し、ほぼ監督なしで脆弱性を特定
- このバグは、2003年のカーネルコードにおける112バイト固定バッファ設計に起因し、その後LOCK操作が追加された際にowner ID長の制限漏れによって発生
- Carliniはこのほかにも数百件の潜在的なカーネル脆弱性を発見したが、人間による検証のボトルネックのため大半はまだ報告されていない
- 最新のClaude Opus 4.6モデルは以前のバージョンよりはるかに高い検出能力を示し、AIベースのセキュリティ研究の転換点と評価されている
Claude Code、23年間見つからなかったLinux脆弱性を発見
- Anthropicの研究者Nicholas CarliniがClaude Codeを使い、Linuxカーネルのリモート悪用可能な脆弱性を複数発見
- そのうち1件は、23年間見つかっていなかったNFS(Network File System)ドライバのバッファオーバーフロー脆弱性
- Carliniは「この種の脆弱性を自分で見つけたことはなかった」と述べ、Claude Codeの性能に驚きを示した
-
Claude Codeの脆弱性検出方法
- Claude Codeはほぼ監督なしでLinuxカーネルのセキュリティ脆弱性を検出
- Carliniは単に「セキュリティ脆弱性はどこにあるか?」というプロンプトを与え、カーネル全体のソースファイルを巡回するよう設定
- 使用されたスクリプトは、各ファイルを対象にCTF(ハッキング大会)の状況を想定し、Claude Codeが最も深刻な脆弱性を
/out/report.txtに記録するよう構成findコマンドで全ファイルを探索し、各ファイルごとにClaude Codeが脆弱性を探す処理を繰り返し実行
- 同一の脆弱性が重複報告されないよう設計されており、カーネルの全ファイルを個別に解析
- Claude Codeはほぼ監督なしでLinuxカーネルのセキュリティ脆弱性を検出
-
NFS(Network File System)脆弱性
- Claude Codeが発見した主な脆弱性は、Linux NFSドライバのヒープバッファオーバーフローで、攻撃者はネットワーク経由でカーネルメモリを読み取れる
- 攻撃シナリオは、協調する2つのNFSクライアント(Client A、Client B) が1つのNFSサーバを対象に実行
- Client Aが1024バイトの長いowner IDを使ってファイルロックを要求し、承認を受ける
- その後Client Bが同じファイルにロックを要求すると、サーバはこれを拒否して応答メッセージを生成
- 問題は、この拒否応答バッファのサイズがわずか112バイトしかない一方で、実際のメッセージはowner IDを含めると合計1056バイトに達すること
- その結果、カーネルが1056バイトを112バイトのバッファに書き込み、攻撃者が制御するデータでカーネルメモリを上書きしてしまう
- Claude Codeはこの脆弱性を報告する際、ASCIIプロトコル図まで自動生成して含めた
-
23年間見つからなかった理由
- このバグは、2003年3月にLinuxカーネルへ導入されたコードに起因
- 当時のコミットメッセージには、
NFSD4_REPLAY_ISIZEという112バイト固定バッファがOPEN、CLOSEなどのNFSv4操作には十分だと明記されていた - その後LOCK操作が追加された際、owner ID長の制限が考慮されず脆弱性が発生
- 当時のコミットメッセージには、
- このコードは**Git導入(2005年)**以前の変更であり、現在では直接リンクすらできない古いコードベースに属する
- このバグは、2003年3月にLinuxカーネルへ導入されたコードに起因
-
報告されていない数百件の追加脆弱性
- Carliniは数百件の潜在的なLinuxカーネル脆弱性をさらに発見したが、
人間による検証工程のボトルネックにより、大半はまだ報告されていない
- 「未検証の結果をカーネルメンテナーに送ることはできないので、まだ確認できていない数百件のクラッシュがある」と述べた
- 現時点でCarliniが直接修正または報告した脆弱性は5件と確認されている
nfsd: fix heap overflow in NFSv4.0 LOCK replay cacheio_uring/fdinfo: fix OOB read in SQE_MIXED wrap checkfutex: Require sys_futex_requeue() to have identical flagsksmbd: fix share_conf UAF in tree_conn disconnectksmbd: fix signededness bug in smb_direct_prepare_negotiation()
- Carliniは数百件の潜在的なLinuxカーネル脆弱性をさらに発見したが、
人間による検証工程のボトルネックにより、大半はまだ報告されていない
-
AIベースの脆弱性検出の進展
- CarliniはClaude Opus 4.6(リリース2カ月前)を使ってこの脆弱性を発見
- 以前のバージョンであるOpus 4.1(8カ月前)、Sonnet 4.5(6カ月前) では同じ結果を再現できなかった
- 最新モデルははるかに多くの脆弱性を検出できた
- 彼は「今後数カ月のうちに研究者と攻撃者の双方がこれらのAIモデルの強力さを認識し、大規模なセキュリティ脆弱性発見の波が来るだろう」と予測
- CarliniはClaude Opus 4.6(リリース2カ月前)を使ってこの脆弱性を発見
-
発表およびその他の情報
- この内容は**[un]prompted AI security conference 2026**で発表された
- Claude Codeの発見事例は、AIが実際のセキュリティ研究の生産性を劇的に高め得ることを示す事例と評価されている
2件のコメント
希望編: Linuxの脆弱性を発見
絶望編: curlのバウンティ廃止
Hacker Newsの意見
驚くことではない。ただ、記事で触れられていない点は、Claude Code が 誤検知バグ も1,000件見つけており、開発者がそれをふるいにかけるのに3か月かかったということだ
新しいコードをまとめて貼り付けて Claude に「何を見落としている? どこにバグがある?」と聞くのは、AI に初めて触れる開発者にとって非常に説得力のあるアプローチだ。特に スレッディング や 分散システムのバグ をすばやく見つけてくれる。今ごろ暗号資産のコードは大量に解析されているのではないか
「隠れていた」バグというより、「誰も見ていなかった」と言う方が正確だ。コードは112バイトのバッファに1056バイトを書き込む構造だった。静的解析でも簡単に見つけられる問題だが、LLM に「固定長バッファをすべて調べろ」と言うと ハルシネーション の結果も混ざりうる。それでも良い出発点だ
興味深いことに、見つかった5件のバグのうち3〜4件は linux-hardened パッチ によって 緩和 されていたはずだ。たとえば io_uring の無効化、UAF 時のカーネルクラッシュ、ヒープオーバーフロー悪用の防止など
「危険な武器を公開するので世界を安全にするのを手伝ってほしい。ただし購読料を払え」という感じの発表が滑稽だ。まるで生化学者が 化学爆弾 をばらまいて、「これを防ぎたければ金を払え」と言っているようだ。最近のソフトウェア業界は本当に皮肉だ
複数の本番コードベースで実験を再現してみたが、重複・誤検知・悪用不能なバグ が多かった。それでも実際の 重大脆弱性(crit) もかなりあった
発表のQ&A中に背景で再生されていた 映像 が気になった。NFS バグを USB ネットワーク経由で悪用する エクスプロイトデモ だったのだろうか?
これは私たちのセキュリティ研究室の関連プロジェクトだ。AI セキュリティエージェントで今年だけで 23件の脆弱性 を発見した
3文字機関(情報機関) の 0-day 備蓄は急速に減っていきそうだ
今後はさらに多くの 脆弱性レポート が出ると期待するのではなく、さらに多くの 攻撃の試み を想定すべきだ