Axios の脆弱性レポート(CVE-2025-62718)
調査日: 2026-04-14 ステータス: Awaiting Analysis
概要
Axios(Node.js / ブラウザ向け Promise ベース HTTP クライアント)において、NO_PROXY ルール検証時のホスト名正規化の不備により、プロキシバイパスおよび SSRF(Server-Side Request Forgery)攻撃が可能になる脆弱性が発見された。CVSS v4.0 スコア 9.3(Critical)。
基本情報
| 項目 | 内容 |
|---|---|
| CVE ID | CVE-2025-62718 |
| GHSA ID | GHSA-3p68-rc4w-qgx5 |
| CVSS v4.0 スコア | 9.3 (Critical) |
| CVSS ベクター | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:L/SC:H/SI:L/SA:L |
| CWE | CWE-441: Unintended Proxy or Intermediary (‘Confused Deputy’), CWE-918: サーバーサイドリクエストフォージェリ (SSRF) |
| 公開日 | 2026-04-09 |
| 最終更新日 | 2026-04-13 |
影響を受けるソフトウェア
Axios (npm)
- ベンダー: axios
- 影響バージョン: < 1.15.0
- 修正バージョン: 1.15.0
- 修正 PR: #10661
脆弱性の詳細
この脆弱性は、Axios の NO_PROXY ルール検証におけるホスト名正規化の不備に起因する。
根本原因
Axios は NO_PROXY 環境変数のマッチング時に、ホスト名の等価性を正しく判定できない。具体的には以下のバリアントを認識できない:
localhost.(末尾ドット付き、RFC 1034 ではlocalhostと同等)[::1](IPv6 リテラル表記、ループバックアドレス)
攻撃の流れ
- 開発者が NO_PROXY に標準的な内部アドレス(
localhost,127.0.0.1,::1)を設定し、内部サービスへのリクエストがプロキシを経由しないよう保護する - 攻撃者がホスト名のバリアント(
localhost.や[::1])を使用してリクエストを構築 - Axios はこれらのバリアントを NO_PROXY のエントリと等価と認識できず、リクエストが設定済みのプロキシを経由して送信される
- プロキシ経由で内部サービスのデータが漏洩したり、攻撃者がプロキシを制御している場合は機密情報を窃取できる
対策・推奨事項
- Axios を 1.15.0 以上にアップデートする(最優先)
- ユーザー制御の URL をサニタイズし、ホスト名のバリアント(末尾ドット、IPv6 リテラル等)を正規化してから処理する
- バックエンドの URL フェッチ機能を制限し、内部サービスへのアクセスをネットワークレベルでも保護する
フロントエンド影響分析
Axios はフロントエンド・バックエンドの両方で使用されるライブラリだが、この脆弱性は Node.js 環境固有の機能(NO_PROXY 環境変数、プロキシ設定)に依存する。CVSS 9.3 はサーバー環境での最悪ケース評価であり、ブラウザ環境にはそのまま適用されない。
| 構成 | 影響度 | 対処要否 | 備考 |
|---|---|---|---|
| SPA(クライアントサイドのみ) | ⚪ なし | 不要 | ブラウザ環境には NO_PROXY / プロキシ設定の概念が存在せず、脆弱なコードパスに到達しない |
| SSR(サーバーサイドレンダリング) | 🔴 高 | 要対処 | Node.js 環境で NO_PROXY を使用して内部サービスを保護している場合、バイパスにより保護が無効化される |
判定の考え方
1. ブラウザのセキュリティ境界(SPA 判定で最重要)
この脆弱性はブラウザ環境では 完全に無関係 である。その理由:
- NO_PROXY は Node.js 固有: NO_PROXY 環境変数によるプロキシ制御は Node.js の
http/httpsモジュールでのみ機能する。ブラウザにはこの概念自体が存在しない - Axios ブラウザアダプター: ブラウザ版 Axios は
XMLHttpRequestを使用し、プロキシ設定を一切処理しない。脆弱なコードパス(lib/adapters/http.jsのプロキシ判定ロジック)に到達すること自体がない - ネットワーク分離: 仮にリクエストが送信されたとしても、ブラウザの同一オリジンポリシーが内部ネットワークへのアクセスを制限する
2. 実行環境の違い
- SPA(ブラウザ): 脆弱なコードパスに到達しないため、影響なし
- SSR(Node.js): NO_PROXY を使用して内部サービスへのリクエストを保護している環境では、ホスト名のバリアントにより保護がバイパスされる。Next.js、Nuxt、Remix などの SSR フレームワークで Axios を使用しており、かつ NO_PROXY で内部サービスを保護している場合はアップデートが必要
3. 攻撃ベクターと前提条件
- 攻撃ベクターはネットワーク経由(AV:N)で、認証やユーザー操作は不要(PR:N/UI:N)
- 前提として、アプリケーションが NO_PROXY を使用しており、かつ攻撃者がリクエスト URL に影響を与えられる必要がある
4. ランタイム vs ビルドタイム
- Axios はランタイムライブラリであり、ビルド時のみの影響はない
参考リンク
情報ソース
| ソース | 取得状況 |
|---|---|
| NVD (NIST) | ✅ 取得済み |
| GitHub Advisory | ✅ 取得済み |
| Web検索 | ✅ 取得済み |