日本
The Morning Dev

知っておくべきことだけを、毎朝

‹
 
A63/100

脆弱性 · 中

axiosのエラー出力でAPIキーが露出する問題を実機で確認

ティアA · 今日中にパッチ – 帰る前に対応

影響を受ける人: axiosでエラーをconsole.logに出力するNode.js開発者

ティアAの理由: 基幹インフラまたは人気ツール かつ シークレットの流出

影響範囲

攻撃

被害

修正

人気ツール · シークレットの流出

取るべき対応

  1. console.log(err)でaxiosのエラーをそのまま出力している箇所を洗い出す
  2. エラーログにはerr.messageなど必要な項目だけを出力し、ヘッダーを含むオブジェクト全体は出力しない
  3. 既にログに残っている可能性がある場合は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: 修正版の有無や修正状況については記載されていない

タイムライン

  1. Securityタグが付けられた新着記事 - Qiita

    axios のエラーを console.log(err) すると API キーが丸見え:redact は JSON.stringify には効いたが console.log には効かなかった(実機確認)

  2. 実機検証でaxiosのエラー出力にAPIキーが含まれることを確認

出典

axios のエラーを console.log(err) すると API キーが丸見え:redact は JSON.stringify には効いたが console.log には効かなかった(実機確認) ↗ Securityタグが付けられた新着記事 - Qiita · 2時間前

初出: · ソース1件 · 記事ページ · ティアの決め方