Modern Frontend CVEs

対象CVE: CVE-2026-44486

[重要] Node.js版Axiosのプロキシ認証情報漏洩脆弱性 (GHSA-j5f8-grm9-p9fc) について

Node.js環境でAxiosを使用し、認証プロキシ経由でリダイレクトが発生する場合、プロキシの認証情報が外部サーバーに漏洩する可能性がある脆弱性 (CVE-2026-44486) について解説します。

はじめに

日本のフロントエンドエンジニアの皆さん、こんにちは。今回は、Node.js環境でAxiosを使用している方に特に注意していただきたい、重要な脆弱性について解説します。対象となるのは、GitHub Advisoryで`GHSA-j5f8-grm9-p9fc`、CVE識別子で`CVE-2026-44486`として公開されているAxiosの脆弱性です。深刻度は`high`とされており、適切な対応が強く推奨されます。

脆弱性の概要と影響

この脆弱性は、Node.js版Axiosが認証付きプロキシを使用する際に、リダイレクト処理の誤りによってプロキシ認証情報(ユーザー名とパスワード)が、意図しない外部サーバーに漏洩する可能性があるというものです。具体的には、HTTPリクエストがリダイレクトされた際に、本来クリアされるべき`Proxy-Authorization`ヘッダーがそのままリダイレクト先のサーバーに送信されてしまう状況で発生します。

もし攻撃者がリダイレクト先のサーバーを制御している場合、プロキシの認証情報を窃取され、企業のネットワーク内部への不正アクセスや、他のシステムへの攻撃に悪用されるリスクが考えられます。**ブラウザ環境でAxiosを使用している場合は、この脆弱性の影響を受けません**のでご安心ください。

具体的なシナリオと発生条件

脆弱性の詳細を掘り下げましょう。Axiosは、`HTTP_PROXY`や`HTTPS_PROXY`といった環境変数を通じて認証付きプロキシが設定されている場合、リクエストヘッダーに`Proxy-Authorization`を付与します。問題は、このリクエストが外部にリダイレクトされた際に発生します。

例えば、`http://example.com`へのリクエストが`https://attacker.com`にリダイレクトされたとします。もしNode.js環境で`HTTP_PROXY`は設定されているものの、`HTTPS_PROXY`が未設定であったり、異なるプロキシが設定されていたりすると、Axiosはリダイレクト時に`Proxy-Authorization`ヘッダーをクリアすべきところをクリアせずに、そのまま`https://attacker.com`へ送信してしまいます。これにより、プロxyの認証情報が攻撃者のサーバーに渡ってしまうのです。

この脆弱性の影響を受けるのは、以下の条件を**すべて**満たす場合です。

<ul><li>AxiosがNode.js環境で使用されている。</li><li>Axiosの自動リダイレクト機能が有効になっている(デフォルトで有効です)。</li><li>`HTTP_PROXY`や`HTTPS_PROXY`などの環境変数を通じて、ユーザー名とパスワードを含む認証付きプロキシが設定されている。</li><li>特に、リダイレクトによって元のプロキシ経由の接続が、プロキシを使わない直接接続、あるいは異なるプロキシ設定の接続に切り替わるケース。</li></ul>

対策と推奨事項

幸いなことに、この脆弱性は既にAxiosの最新バージョンで修正されています。Node.js環境でAxiosをご利用の場合は、速やかなバージョンアップを強く推奨します。

**推奨されるバージョンアップ:**

<ul><li>**Axios v1系をご利用の場合:** 修正コミット`afca61a`を含む最新の`1.x.x`バージョンへ更新してください。</li><li>**Axios v0系をご利用の場合:** `0.32.0`以降のバージョンへ更新してください。</li></ul>

すぐにバージョンアップが難しい場合や、影響範囲を限定したい場合は、以下のいずれかの方法で一時的にリスクを軽減できます。

<ul><li>**リダイレクト機能の無効化:** Axiosの設定で`maxRedirects: 0`とし、リダイレクト処理をアプリケーション側で手動で実装することで、Axiosによるリダイレクト時の認証情報漏洩を防ぎます。</li><li>**プロキシ設定の厳密な管理:** 信頼できないHTTPオリジンへのリクエストに対しては、認証付きプロキシの環境変数を使用しないか、リダイレクトの動作を厳密に制御するロジックを導入してください。</li><li>**プロキシ環境変数の一貫性:** `HTTP_PROXY`と`HTTPS_PROXY`などのプロキシ関連環境変数を一貫性を持たせて設定し、リダイレクトによってプロキシ経由から直接接続へ意図せず切り替わる状況を防ぐことも有効です。</li></ul>

まとめ

Node.js環境でAxiosを利用し、認証プロキシを使用している場合は、この脆弱性によるプロキシ認証情報の漏洩リスクに晒されている可能性があります。攻撃者にプロキシ認証情報が渡ることは、システム全体のセキュリティを危険にさらす重大な問題です。

ご自身のプロジェクトでAxiosのバージョンとプロキシ利用状況をご確認いただき、速やかに推奨されるバージョンへのアップデート、または一時的な軽減策の適用をご検討ください。安全なアプリケーション開発のために、継続的なセキュリティ対策が不可欠です。

← ブログ一覧に戻る