curl開発チームは、クライアントシステム上で任意のコード実行を可能にする危険な脆弱性を無力化するため、バージョン8.23.0のリリースを前倒ししました。この脆弱性は当初、Anthropicの人工知能スキャナーによって発見されました。その後、あるセキュリティ研究者が、理論上の危険性を実際に動作するエクスプロイトへと仕上げています。
CVE-2026-92392として識別されたこの脆弱性は、バージョン8.12.0から8.22.0までのcurlおよび共有ライブラリlibcurlに影響します。2025年2月に混入したこの欠陥は、HTTP/2でのファイルアップロード処理に起因します。そのため、悪意のある受信エンドポイントを運用する攻撃者は、特定の条件下でクライアントのメモリを破壊し、リモートコード実行に至る可能性があります。
HTTP/2のUse-After-Free脆弱性の仕組み
この脆弱性は典型的なUse-After-Free(解放後使用)の欠陥で、ソフトウェアが事前に解放されたメモリ領域にアクセスしてしまうものです。転送中、不正なサーバーは意図的にアップロードを一時停止し、部分的なレスポンスを返したうえで、HTTP/2のストリームリセットフレームを送信できます。curlが転送の再試行を試みると、接続の終了処理シーケンスが、破棄された転送オブジェクトへのダングリングポインタを保持したままになります。
その後、悪意のあるホストはこの残存した参照を操作し、アプリケーションを解放済みのメモリセグメントへと誘導します。HackerOneの開示レポートに記載されているとおり、研究者は単にクラッシュを引き起こすだけでなく、任意のコード実行を実証しました。エクスプロイトを成功させるには、細工された135 KBのペイロード、サーバーの応答タイミングの正確な制御、環境変数の綿密な調整が必要でした。
悪用を阻む制約とアーキテクチャ上の障壁
それでも、この欠陥を実環境で悪用するには、きわめて高い精度が求められます。プロジェクト創設者のDaniel Stenberg氏がこのUAFがRCEに至った経緯の分析で詳述したとおり、攻撃者は正確なcurlのリリース、ホストのCPUアーキテクチャ、基盤となるメモリアロケータ、特定のヒープレイアウトを事前に把握していなければなりません。さらに、並行する転送を調整し、シェルコードの実行を約23バイト以内に収める必要もあります。こうした障壁を踏まえ、メンテナーは、実環境で最も起こりやすい結果は通常のプロセスクラッシュだとみています。
Anthropic AIによる発見と前倒しされたリリースサイクル
この異常な状態を特定したのは、Anthropicのクロード(Claude)モデルを搭載した脆弱性検出プラットフォーム「OSS Scanner」を利用したLuna Tong氏です。Daniel Stenberg氏はこれまでAIが生成した脆弱性報告に懐疑的でしたが、今回の報告は憶測にもとづくコード断片ではなく、再現可能で否定しようのないエクスプロイトを伴っていました。
curlのセキュリティチームは2026年9月15日にこの報告を受け取り、数時間以内に設計上の欠陥であることを確認しました。メンテナーは調査結果の深刻さを重くみて、通常8週間のリリース期間を6週間に短縮し、この脆弱性に「High」の深刻度を割り当てました。幸い、テレメトリーからは実環境での悪用が確認された形跡はありません。
対策とプロトコルの回避策
バージョン8.23.0では合計24件の脆弱性が修正されており、残る23件の深刻度は低と分類されています。主な修正では、lib/multi.c内の接続終了ロジックの順序を入れ替えました。管理者とソフトウェア開発者は、curlおよびlibcurlをただちに更新してください。すぐに更新できない場合は、HTTP/2のネゴシエーションを無効にすることが有効な暫定的防御策となります。たとえば、–http1.1フラグを使って通信をHTTP/1.1に限定する方法があります。
翻訳元: https://meterpreter.org/curl-8-23-0-cve-2026-92392-rce/