最も広く使用されているHTTPクライアントライブラリの1つであるAxiosで重大なセキュリティ脆弱性が発見されました。この脆弱性により、アプリケーションがリモートコード実行(RCE)とクラウドインフラストラクチャ全体の侵害にさらされます。
CVE-2026-40175として追跡されているこの脆弱性は、CVSS 3.1スコア9.9の重大度を持ち、攻撃者がAWS IMDSv2セキュリティコントロールを回避して機密クラウドメタデータを抽出することを可能にします。
セキュリティ研究者raulvdvによる発見とその後のjasonsaamanによる公開に続き、公開Proof of Concept(PoC)がリリースされました。
ガジェット攻撃チェーン
この脆弱性は、axios npmパッケージ内のヘッダー注入チェーンを介した無制限のクラウドメタデータ抽出フローに根ざしています。
セキュリティアドバイザリによると、コア問題はライブラリのヘッダー処理コンポーネント、特にlib/adapters/http.jsファイル内に存在します。
この欠陥はHTTPヘッダーの完全な無サニタイズ化(CWE-113)を伴い、これはデフォルトのサーバーサイドリクエストフォージェリ(SSRF)機能(CWE-918)とリクエストスマグリング(CWE-444)と組み合わさると、非常に悪用可能な攻撃ベクトルを作成します。
この脆弱性を特に危険にしているのは、直接的なユーザー入力がゼロであることを必要とすることです。エクスプロイトは完全に「ガジェット」チェーンに依存しています。
脅威アクターがアプリケーションスタック内の他のサードパーティ依存関係(例えばbody-parser、qs、またはminimist)を介してObject.prototypeを汚染することに成功した場合、Axiosはその設定フェーズ中にこれらの汚染されたプロパティを自動的にマージします。
Axiosがこれらのマージされた値をキャリッジリターンとラインフィード(CRLF)文字についてサニタイズできないため、プロパティは悪質なHTTPリクエストスマグリングペイロードに変換されます。
リリースされたPoCはクラウド環境をターゲットとした深刻なエクスプロイトシナリオを実証しています。開発者が完全に安全で、ハードコードされた送信リクエストを作成すると、Axiosは誤ってx-amz-targetなどの汚染されたプロトタイププロパティをリクエストヘッダーにマージします。
これらの悪質なヘッダーはその後、構造的な検証なしでソケットに直接書き込まれます。
この動作により、攻撃者は169.254.169.254のAWS EC2メタデータサービスをターゲットにした二次的なPUTリクエストをスマグルできます。
重要なことに、このスマグルされたリクエストは必須のX-aws-ec2-metadata-token-ttl-secondsヘッダーを含み、AWS IMDSv2セッショントークン保護を正常に回避します。
攻撃者はその後、有効なセッショントークンを取得し、IAM認証情報を盗み、クラウドアカウント全体の侵害を達成できます。これには認証バイパスとキャッシュポイズニングなどの二次的な影響も含まれます。
影響を受けるバージョンと対策
この脆弱性は、従来のブランチと最新のブランチの両方にわたるAxiosデプロイメントの広い範囲に影響します。1.13.2より前のすべてのAxiosバージョンはこのガジェット攻撃チェーンに明確に脆弱です。
この重大な脅威を軽減するために、開発チームはAxios依存関係をバージョン1.15.0以降に直ちに更新する必要があります。
このパッチは、基本的なリクエスト関数に渡す前に、すべてのヘッダー値に対して厳密な検証を実施することで問題を解決します。
更新されたライブラリが無効なCRLF文字を検出した場合、直ちにセキュリティエラーをスローし、注入チェーンを効果的に無効化し、リクエストスマグリング攻撃を防止します。
翻訳元: https://gbhackers.com/critical-axios-vulnerability-poc-released/