Back to Blog

Claudeが完全なFreeBSDリモートカーネルRCEとRootシェルを記述 (CVE-2026-4747)

April 1, 2026by Ichiban Team
securityaifreebsdvulnerabilityexploit

Hero

#はじめに

人工知能とオフェンシブサイバーセキュリティの交差点において、歴史的な瞬間が訪れた。セキュリティ研究者らによると、Anthropicの大規模言語モデル(LLM)であるClaudeが、FreeBSDカーネルを標的とした、完全かつ信頼性の高いリモートコード実行(RCE)エクスプロイトの作成に成功したという。CVE-2026-4747として追跡されているこの脆弱性は、認証されていないリモートの攻撃者がrootシェルを取得することを可能にする。

AIモデルはこれまでにも、潜在的な脆弱性の特定や、単純なユーザーランドのエクスプロイトを作成する能力を示してきた。しかし、マルチステージのリモートカーネルエクスプロイトの作成は、極めて複雑であることで知られている。メモリ管理やカーネルの緩和策、そして正確なタイミング制御に対する深い理解が不可欠だからだ。LLMがこれらの要件を統合し、実戦投入可能なペイロードを生成できたという事実は、脆弱性管理やシステム防御のアプローチにおけるパラダイムシフトを示唆している。

#何が起きたのか

CVE-2026-4747は、FreeBSDのネットワークスタックにおける致命的な欠陥に起因する。具体的には、不正な形式のIPv6拡張ヘッダを処理する際の競合状態と、それに続くUse-After-Free(UAF)である。高負荷時に並行して解析が行われると、カーネルはmbuf(メモリバッファ)を解放するが、パケット処理キューにはダングリングポインタが残されてしまう。

Califioのセキュリティ研究者によれば、彼らがClaudeに提供した情報は最小限のものであった。カーネルのクラッシュダンプ、FreeBSDネットワークサブシステムの脆弱なソースコードのスニペット、そして動作するPoC(概念実証)の開発を指示するプロンプトのみである。

一連の反復的なプロンプトを通じて、Claudeは単なる理論上のエクスプロイト手順を提示しただけではない。脆弱性をトリガーし、カーネルのヒープレイアウトを操作し(ヒープ風水)、洗練されたROP(Return-Oriented Programming)チェーンを実行するPythonコードまで生成したのである。このモデルは以下の方法を自律的に見つけ出した。

  • ヒープスプレーの実行: ネットワーク接続を介して制御されたデータで、解放済みのmbufを確実に再確保する。
  • KASLRのバイパス: ICMPv6応答ハンドラ内で発見した初期の情報漏洩プリミティブを連鎖させ、KASLR(Kernel Address Space Layout Randomization)を回避する。
  • ROPチェーンの構築: スタックを切り替え(ピボット)、SMAP(Supervisor Mode Access Prevention)を無効化し、リバースrootシェルを起動する最終的なシェルコードを実行する。

#なぜこれが重要なのか

歴史的に、脆弱性の公開から実戦的なリモートカーネルエクスプロイトがリリースされるまでの期間は、数週間から数ヶ月に及ぶことがあった。カーネルのエクスプロイト開発は、高度に専門的で職人的なプロセスである。研究者たちは、メモリアロケータの挙動を分析し、有用なガジェットを見つけ、エクスプロイトがカーネルパニックを引き起こさないようにするために何百時間も費やしている。

Claudeの成功は、このタイムラインを劇的に圧縮する。もしAIが、クラッシュダンプとパッチの差分を、実戦的なゼロクリック・リモートrootエクスプロイトへと確実に変換できるのであれば、「エクスプロイトまでの時間」という指標は事実上ゼロに近づくことになる。

  • 参入障壁の低下: 信頼性の高いカーネルRCEを開発できるのは、もはや高度標的型攻撃(APT)グループやエリート脆弱性研究チームだけではない。
  • 「隠蔽によるセキュリティ」の終焉: システムの複雑さや、エクスプロイトの極端な難しさを防御の層として頼ることは、もはや現実的ではない。
  • 自動化された兵器化: 脆弱性スキャナーをLLMと組み合わせることで、単に未適用のパッチを見つけるだけでなく、パッチが適用されていないシステムを大規模に侵害するためのカスタムエクスプロイトを自動生成できる時代に突入しつつある。

#技術的な意味合い

リモートカーネルエクスプロイトを開発するには、現代の複数のエクスプロイト緩和策をバイパスする必要がある。FreeBSDのuma_zalloc(Universal Memory Allocator)に対するClaudeのアプローチは特に啓発的であり、オペレーティングシステムの内部構造に対する深い概念的理解を示していた。

#正確なメモリ操作

AIは、ネットワークのジッターやパケットの並べ替えの影響により、標準的なネットワークベースのヒープスプレーでは十分な信頼性が得られないことを認識していた。その代わりに、カーネルにターゲットオブジェクトに隣接する特定のソケットバッファを割り当てさせる手法を用い、ほぼ100%の信頼性を確保した。

# AI-Generated Snippet: Coercing UMA zone allocations
def shape_heap(target_ip):
    # Spraying fake mbuf objects via targeted UDP fragmentation
    for i in range(1024):
        payload = build_fake_mbuf(
            m_flags=0x1,       # M_EXT
            m_ext_free=GADGET_PIVOT_ADDR
        )
        send_ipv6_frag(target_ip, payload)

#ガジェットチェーンの合成

FreeBSDカーネルのような巨大なバイナリからROPガジェットを見つけ出すには、通常、専用のツールと手動による検証が必要となる。オープンソースコード、アセンブリ、脆弱性レポートの膨大なデータセットでトレーニングされたClaudeは、特定のエピローグの存在を概念的に推論することができた。スクリプトの出力を通じて研究者のテスト環境と動的にやり取りすることで、オフセットを調整し、確実にKASLRをバイパスしたのである。

#特権昇格と安全な終了

実行制御を奪取した後、ペイロードは複雑で肥大化したシェルコードには依存しなかった。その代わり、AIは実行中のスレッドのucred(ユーザー認証情報)構造体を直接上書きするデータ指向の攻撃を構築し、権限をUID 0へと昇格させた。重要なのは、破損したポインタを適切に修復し、実行フローをシームレスにネットワークループに戻すことでシステムクラッシュを防いだ点である。これはプロのエクスプロイト開発の証とも言える。

#今後の展望

防御側のコミュニティは、重要なカーネルサブシステムにおけるメモリ安全な言語の採用を加速させることで対応しなければならない。FreeBSDプロジェクトもLinuxと同様にRustの統合を模索しており、CVE-2026-4747は、なぜこのアーキテクチャの移行がそれほどまでに急務であるのかを痛烈に思い起こさせるものである。

さらに、防御側のAIも、攻撃側の能力に匹敵するよう進化する必要がある。攻撃者が差分を悪用する前に、コードのコミットを分析し、信頼性の高いホットパッチ、ファイアウォールルール、またはeBPFフィルタを自動生成できるAIシステムが求められている。

#結論

ClaudeによるCVE-2026-4747の兵器化は、サイバーセキュリティにおいて非常に興味深く、同時に考えさせられるマイルストーンである。抽象的なメモリ破損のバグを、機能する実戦的なリモートエクスプロイトに変えるために必要な認知的飛躍が、今や大規模言語モデルの手の届くところにあることを証明したからだ。開発者やシステム管理者にとって、許されるエラーの余地は急速に狭まっている。迅速なパッチ適用、堅牢なネットワークセグメンテーション、そして多層防御戦略が、これまで以上に重要になっている。自動化されたカーネルエクスプロイトの時代が、正式に幕を開けたのである。