A63/100
脆弱性 · 中
axiosのエラー出力でAPIキーが露出する問題を実機で確認
ティアA · 今日中にパッチ – 帰る前に対応
影響を受ける人: axiosでエラーをconsole.logに出力するNode.js開発者
ティアAの理由: 基幹インフラまたは人気ツール かつ シークレットの流出
影響範囲
攻撃
被害
修正
人気ツール · シークレットの流出
取るべき対応
- console.log(err)でaxiosのエラーをそのまま出力している箇所を洗い出す
- エラーログにはerr.messageなど必要な項目だけを出力し、ヘッダーを含むオブジェクト全体は出力しない
- 既にログに残っている可能性がある場合はAPIキーの再発行を検討する
要点
- axiosで401などのエラーをcatchしてconsole.log(err)すると、Authorizationヘッダーの「Bearer」の値がそのまま出力された
- axiosのredact機能はJSON.stringifyでは効いたが、console.logでは効かなかったと報告されている
- 検証はNode.js 24.22.1を使い、2026-11-10に実機で行われた
なぜ重要か
エラーオブジェクトをそのままログに出力している開発者は、APIキーがログ基盤や共有ログに残る恐れがある。ログ出力方法の見直しが必要になる。
ティアの根拠となったチェックリスト
チェックリスト · 10項目中3項目が「はい」
| はい | 開発者に影響 | axiosは開発者が日常的に使うHTTPクライアントライブラリであるため |
| いいえ | 基幹インフラ | axiosは単一のHTTPクライアントライブラリで、OpenSSHやLinuxカーネルのような基幹インフラではない |
| はい | 人気ツール | axiosはnpmで非常に広く使われる上位パッケージであるため |
| いいえ | 悪用確認済み | Qiita: 実機での確認によるエラー出力の露出報告であり、実際の攻撃観測は記載されていない |
| いいえ | 公開エクスプロイト | Qiita: 再現手順は示されているが、攻撃用のエクスプロイトコードや悪用手順は公開されていない |
| いいえ | 認証不要のリモート攻撃 | Qiita: 露出は利用者自身のconsole.log出力で起きるため、ネットワーク経由の攻撃ではない |
| いいえ | 完全な乗っ取り | Qiita: 記載は認証情報の露出のみで、コード実行や権限奪取は記載されていない |
| はい | シークレットの流出 | Qiita: console.logのエラー出力にAuthorization: BearerのAPIキーの値がそのまま出たと報告 |
| いいえ | サプライチェーン | Qiita: 正規パッケージへの悪意あるコード混入の記載はなく、ログ出力の問題である |
| いいえ | 修正なし | Qiita: 修正版の有無や修正状況については記載されていない |
タイムライン
出典
axios のエラーを console.log(err) すると API キーが丸見え:redact は JSON.stringify には効いたが console.log には効かなかった(実機確認) ↗ Securityタグが付けられた新着記事 - Qiita · 2時間前