[要注意] Axiosのプロキシバイパス脆弱性 (GHSA-pjwm-pj3p-43mv / CVE-2026-44492) とその対策
はじめに:Axios利用者は要注意!プロキシ設定の落とし穴
Node.js環境でHTTPクライアントとして広く利用されているAxiosに、高深刻度(High)の脆弱性「GHSA-pjwm-pj3p-43mv (CVE-2026-44492)」が報告されました。この脆弱性は、特にプロキシサーバーを介して外部サービスにアクセスしつつ、特定の内部サービスへのアクセスを`NO_PROXY`環境変数などで除外している環境に影響を与えます。具体的には、特定のIPv6形式のアドレスを使うと、意図せずプロキシ経由で内部サービスへ接続されてしまうというものです。フロントエンドエンジニアの皆さんも、Node.jsを用いたビルドツール、APIサーバー、サーバーサイドレンダリングなどでAxiosを使用しているケースがあるかと思いますので、本記事で詳細と対策をしっかり理解しましょう。
脆弱性の概要:IPv4-mapped IPv6アドレスが引き起こすプロキシバイパス
この脆弱性は、Axiosの`v1.15.0`でCVE-2025-62718の修正として導入された`shouldBypassProxy`関数に起因します。この関数は、リクエスト先のホストが`NO_PROXY`環境変数で指定された範囲内に含まれるかどうかを判断し、プロキシをバイパスすべきかを決定します。問題は、`shouldBypassProxy`関数が**IPv4-mapped IPv6アドレス**(例: `::ffff:127.0.0.1`)を正しく認識・正規化できない点にありました。
通常のIPv4アドレス(例: `127.0.0.1`)は`NO_PROXY`設定で除外できますが、同じ宛先をIPv4-mapped IPv6アドレス形式で指定したURL(例: `http://[::ffff:127.0.0.1]/`)へのリクエストは、プロキシの対象外とは認識されず、プロキシ経由で送信されてしまいます。これにより、`NO_PROXY`で保護されているべき内部システムへのアクセスが、意図せず外部プロキシを経由するリスクが発生するのです。
影響範囲と深刻なリスクシナリオ
この脆弱性の影響を受けるのは、以下の条件をすべて満たすAxiosを利用するアプリケーションです。
<ul><li>HTTP/HTTPSプロキシが設定されている</li><li>`NO_PROXY`環境変数などを使って、特定の内部システムやサービスへのアクセスをプロキシから除外している</li><li>Axiosを利用して外部リクエストを行っている(主にNode.js環境が対象となります)</li></ul>
特に深刻なリスクとなるのは、以下のようなシナリオです。
もしアプリケーションが、ユーザーから指定されたURLへのリクエストを処理するSSRF脆弱性を持つ場合、攻撃者はこの脆弱性を悪用できます。例えば、`http://[::ffff:127.0.0.1]/admin`のようなリクエストURLを生成させ、本来直接アクセスできないはずの内部管理コンソールに、プロキシ経由でアクセスを試みることが可能になります。
クラウド環境(AWS EC2など)では、インスタンスのメタデータサービス(IMDS: Instance Metadata Service)から認証情報などの機密情報を取得できます。IMDSは通常、`169.254.169.254`のようなローカルリンクアドレスで提供され、セキュリティのために`NO_PROXY`でプロキシ経由のアクセスをブロックするのが一般的です。しかし、攻撃者が`http://[::ffff:169.254.169.254]/latest/meta-data/iam/security-credentials/`のようなIPv4-mapped IPv6アドレスを指定することで、プロキシ経由でIMDSにアクセスし、認証情報を取得できてしまう可能性があります。これは非常に危険な情報漏洩に繋がります。
推奨される対策:速やかなアップデートを
この脆弱性に対する最も安全で確実な対策は、**Axiosの修正済みバージョンへ速やかにアップデートすること**です。修正では、`shouldBypassProxy`関数において、IPv4-mapped IPv6アドレスを通常のIPv4アドレス形式に正規化する処理が追加されています。これにより、`NO_PROXY`設定が正しく機能するようになります。
具体的な修正バージョンについては、Axiosの公式リリースノートやGitHubのセキュリティアドバイザリ(GHSA-pjwm-pj3p-43mv)をご確認ください。通常は`package.json`の依存関係を更新し、`npm install`または`yarn install`を実行することでアップデートが可能です。
すぐにアップデートが難しい場合のアプリケーションレベルでの一時的な対策としては、リクエスト先のホスト名を事前に正規化するなどの方法も考えられますが、完全な対策としてはライブラリのアップデートが推奨されます。
まとめ:セキュリティは常日頃の意識から
Axiosのプロキシバイパス脆弱性は、SSRFや機密情報漏洩といった重大なセキュリティリスクをはらんでいます。特に、内部サービスと連携するNode.jsアプリケーションを開発しているフロントエンドエンジニアの皆さんは、この脆弱性の影響を直接受ける可能性があります。日頃から利用しているライブラリのセキュリティ情報をチェックし、速やかにアップデートを適用する習慣を身につけましょう。安全な開発を心がけることが、サービス全体の信頼性を高める第一歩です。