Microsoft developer platformのaxios 1.15.2更新を解説:影響範囲と確認すべき設定

Microsoft developer platformの「build(deps): Bump axios from 1.15.0 to 1.15.2」は、単なる依存関係の小さな更新に見えますが、実務では早めに確認すべきセキュリティ寄りのアップデートです。結論から言うと、対象は/agent-governance-typescript/agent-os-vscode配下のVS Code拡張向けTypeScriptプロジェクトで、axiosが1.15.0から1.15.2へ更新されています。公開差分上はpackage.jsonの1依存だけの変更ですが、axios側ではプロトタイプ汚染対策、Unixドメインソケット経由のSSRF対策、keep-aliveソケットのメモリリーク修正などが含まれるため、利用者は「ビルドが通るか」だけでなく「HTTP通信設定が意図通りか」まで確認するのが安全です。(GitHub)

目次

Microsoft developer platform documentation updateで何が変わったのか

今回のMicrosoft developer platform documentation updateは、Microsoftのagent-governance-toolkitリポジトリに対するDependabot PRです。PR #1727は2026年5月5日にmainへマージされ、対象ブランチはdependabot/npm_and_yarn/agent-governance-typescript/agent-os-vscode/axios-1.15.2でした。変更対象はagent-governance-typescript/agent-os-vscode/package.jsonで、axiosが1.15.0から1.15.2へ上がっています。(GitHub)

差分としては非常に小さく、公開されている変更は次の1点です。

確認項目内容
対象パス/agent-governance-typescript/agent-os-vscode
対象ファイルpackage.json
更新された依存関係axios
更新前1.15.0
更新後1.15.2
変更種別direct:production dependency
PR状態2026年5月5日にマージ済み

重要なのは、この更新が「ドキュメント表記の修正」ではなく、Microsoft developer platform上のAgent Governance Toolkitに含まれるVS Code拡張向けパッケージの本番依存関係更新である点です。コミット情報ではaxiosがdirect:production依存関係として扱われています。(GitHub)

対応が必要な人

今回の変更で最初に確認すべきなのは、Agent Governance Toolkitそのものを使っているかどうかではなく、agent-governance-typescript/agent-os-vscodeを自分の開発・検証・配布フローに取り込んでいるかです。

対象者対応優先度確認すべきこと
Microsoft Agent Governance Toolkitをフォークしている開発者高自分のフォークに同じaxios更新が反映されているか
VS Code拡張としてagent-os-vscodeをビルド・配布しているチーム高拡張機能のビルド、通信処理、認証連携が壊れていないか
TypeScript版SDKやサンプルを参考に社内実装しているチーム中自社のpackage.jsonやロックファイルで古いaxiosが残っていないか
Agent Governance ToolkitをPythonや.NET中心で使っている利用者低〜中直接影響は限定的だが、リポジトリ全体をフォークしているなら依存関係を確認
単にMicrosoft developer platformの更新情報を追っている読者低セキュリティ修正を含む依存更新として把握しておく

特に注意したいのは、VS Code拡張やNode.js上で動くツールが外部API、社内API、ローカルサービスへHTTPリクエストを送るケースです。axiosの今回の修正はNode HTTP adapterまわりのセキュリティ強化を含むため、Node環境でaxiosを使っているプロジェクトでは優先度を上げて確認した方がよいでしょう。(GitHub)

axios 1.15.2で確認すべき主な変更点

axios 1.15.2のリリースでは、Node HTTP adapterのプロトタイプ汚染対策、allowedSocketPathsによるUnixドメインソケットの許可リスト設定、keep-aliveソケットのメモリリーク修正、CIやセキュリティ文書を含むサプライチェーン面の強化が説明されています。(GitHub)

プロトタイプ汚染対策が強化された

プロトタイプ汚染とは、JavaScriptオブジェクトの継承元に意図しない値が混入し、設定値や判定処理に影響する問題です。axios 1.15.2では、auth、baseURL、socketPath、beforeRedirect、insecureHTTPParserなどの設定に、汚染されたプロパティが影響しにくくなるよう、Node HTTP adapterや設定解決処理が強化されています。(GitHub)

実務上の確認ポイントは、次のようになります。

確認対象見るべき観点
baseURL環境変数や設定ファイルから読み込むURLが想定通りか
auth認証情報がリクエストごとに明示的に設定されているか
beforeRedirectリダイレクト時の処理で不要なヘッダーや認証情報を引き継いでいないか
insecureHTTPParser特別な理由なく有効化していないか
共通設定オブジェクト外部入力をそのままaxios設定にマージしていないか

依存関係を更新するだけで一定の防御強化は期待できますが、危険な設定の使い方まで自動で直るわけではありません。特に、ユーザー入力やAIエージェントの出力をHTTPリクエスト設定に混ぜる設計は、更新後も避けるべきです。

socketPathを使う場合はallowedSocketPathsを確認する

axios 1.15.2では、Unixドメインソケットを使ったSSRFリスクを抑えるため、socketPathに関するチェックと、任意設定のallowedSocketPathsが追加されています。socketPathが許可リストに合わない場合はAxiosErrorのERR_BAD_OPTION_VALUEが返ると説明されています。(GitHub)

多くの一般的なHTTP API呼び出しではsocketPathを使いません。そのため、通常のhttps://api.example.comのような通信だけなら、大きな設定変更は不要な可能性が高いです。

一方で、次のような構成では確認が必要です。

利用シーン確認すべきこと
Docker daemonなどローカルソケットへ接続している許可するソケットパスを明示できるか
社内ツールでUnixドメインソケットを使っている更新後に通信が拒否されないか
AIエージェントがツール実行の一部としてHTTP通信するエージェント出力からsocketPath相当の値を組み立てていないか
VS Code拡張がローカルサーバーや補助プロセスと通信する接続先がURLベースかソケットベースか

判断基準はシンプルです。socketPathを使っていないなら、まずはビルドと通常のAPI通信テストを優先します。socketPathを使っているなら、許可するパスを最小限に絞り、想定外のパスが拒否されることまでテストしてください。

keep-aliveソケットのメモリリーク修正も見逃せない

axios 1.15.2には、keep-aliveソケットでリクエストごとにリスナーが増え続ける問題への修正も含まれています。リリースノートでは、MaxListenersExceededWarningや長時間・高並行のkeep-aliveワークロードでの線形的なヒープ増加を解消する修正として説明されています。(GitHub)

これは、短時間だけ動かすCLIでは気づきにくい問題です。逆に、次のような環境では影響が出やすくなります。

環境起こり得る症状
常駐するVS Code拡張長時間利用後にメモリ使用量が増える
社内APIへ定期的にポーリングするツール実行時間が長いほど警告や遅延が出る
CI/CDで大量のHTTPリクエストを投げる検証処理一部ジョブで不安定な失敗が起きる
エージェント管理ダッシュボード連携接続数や再試行が多いと負荷が上がる

更新後は、単体テストだけでなく、可能であれば長めの動作確認を行うと安心です。たとえば、拡張機能を起動したままAPI呼び出しを繰り返し、Node.jsの警告、メモリ使用量、接続失敗の有無を確認します。

axios 1.15.1分の修正も同時に取り込まれる

1.15.0から1.15.2へ上がるため、途中の1.15.1の修正も含めて確認する必要があります。axios 1.15.1では、ヘッダーインジェクション対策、multipartヘッダーのCR/LF除去、プロトタイプ汚染に関連する認証バイパス対策、withXSRFTokenの扱い、maxBodyLengthやmaxContentLengthの制限適用などが説明されています。(GitHub)

特に業務システムで注意したいのは、ファイルアップロード、リダイレクト、XSRFトークン、ストリーミングレスポンスです。これらは「正常系のAPI通信」では問題が見えにくい一方、境界値や例外系で差が出ます。

確認するなら、次の観点をテストケースに入れると実務的です。

テスト観点具体例
ヘッダー生成ユーザー名、ファイル名、任意ラベルがヘッダーに入る処理
multipart送信ファイルアップロード、複数選択フォーム、FormData送信
リダイレクト認証付きリクエストで3xx応答を受ける処理
XSRFクロスオリジン通信時にトークンが意図せず送られないか
サイズ制限maxBodyLength、maxContentLengthが期待通り効くか
ストリーミング大きなレスポンスやダウンロード処理

「axiosのpatch更新だから確認不要」と考えるのは危険です。patch更新は通常、互換性を大きく壊さない範囲の修正として扱われますが、セキュリティ強化によって、これまで通っていた曖昧な入力や危険な設定が拒否されることはあります。

影響範囲をどう判断するか

今回の変更はagent-os-vscode配下のpackage.jsonに限定されています。Agent Governance ToolkitのREADMEでは、このプロジェクトがAIエージェントのアクションを実行前にポリシーチェックするランタイムガバナンスのためのツールキットであり、Python、TypeScript、.NET、Rust、Goなど複数言語に対応すると説明されています。(GitHub)

ただし、今回のPRの直接対象はTypeScript配下のVS Code拡張向けパッケージです。Python版や.NET版を利用しているだけなら、直接のコード影響は限定的と考えられます。

直接影響があるケース

直接影響を受ける可能性が高いのは、次のケースです。

  • agent-governance-toolkitをフォークしてagent-os-vscodeを改修している
  • @microsoft/agent-os-vscode相当のVS Code拡張を社内ビルドしている
  • agent-governance-typescript/agent-os-vscode/package.jsonをもとに自社拡張を作っている
  • axiosの設定をラップした独自HTTPクライアントをVS Code拡張内で使っている
  • AIコーディング支援やAgent OS連携で外部API・ローカルAPIにアクセスしている

package.json上では@microsoft/agent-os-vscodeの表示名が「Agent OS – AI Safety for Code」とされ、VS Code拡張としてのエンジン要件やコマンド、設定項目、axios: 1.15.2が含まれています。(GitHub)

間接影響があるケース

間接的な影響としては、自社プロジェクトで同じくaxios 1.15.0を使っているケースが挙げられます。Microsoftの更新そのものが自社アプリを自動更新するわけではありませんが、「同じ依存関係に同じ修正がある」という意味では確認材料になります。

たとえば、次のようなプロジェクトでは、今回の更新をきっかけに依存関係を棚卸しするとよいでしょう。

プロジェクト確認理由
VS Code拡張Node環境でaxiosを使う可能性が高い
ElectronアプリNodeとブラウザの境界があり、通信設定が複雑になりやすい
社内開発者向けCLI認証付きAPIやプロキシ設定を扱うことが多い
AIエージェント管理ツールツール実行、監査ログ、外部連携でHTTP通信が多い
CI/CD補助ツール長時間実行や大量リクエストでkeep-aliveの影響を受けやすい

移行時に実施したい確認手順

今回のような依存関係更新では、「npm installして終わり」ではなく、依存解決、ビルド、通信テスト、セキュリティ設定の順に確認すると手戻りが少なくなります。

| 手順 | 作業 | 目的 |
| -: | ————————- | ———————– |
| 1 | 現在のaxiosバージョンを確認 | 古いバージョンが残っていないか把握する |
| 2 | package.jsonとロックファイルを更新 | 実際に利用される依存関係を揃える |
| 3 | TypeScriptビルドを実行 | 型定義や設定変更の影響を見る |
| 4 | テスト・lintを実行 | 既存機能の破損を検出する |
| 5 | HTTP通信の正常系を確認 | API接続、認証、リトライを確認する |
| 6 | 例外系を確認 | リダイレクト、サイズ制限、エラー処理を確認する |
| 7 | 長時間実行を確認 | keep-aliveやメモリ増加を確認する |

ローカルでは、次のようなコマンドで確認できます。

cd agent-governance-typescript/agent-os-vscode

npm ls axios
npm install
npm run compile
npm run lint
npm test

ロックファイルを使っているプロジェクトでは、package.jsonだけでなくpackage-lock.json、pnpm-lock.yaml、yarn.lockの状態も確認してください。公開PRではpackage.jsonの差分が中心ですが、自社プロジェクトではロックファイルに古いaxiosが残ると、実行環境では更新前のバージョンが使われることがあります。

設定確認で失敗しやすいポイント

axios更新でよくある失敗は、依存関係のバージョンだけを見て、通信設定や実行環境の差を見落とすことです。

ブラウザ環境とNode環境を混同する

axiosはブラウザでもNode.jsでも使われますが、今回の重要な修正にはNode HTTP adapter関連が含まれます。VS Code拡張のようにNodeベースで動く処理では、ブラウザアプリとは確認観点が異なります。

たとえば、ブラウザ中心のWebアプリではsocketPathを使うことは一般的ではありません。一方、Node.js上の開発者ツールや拡張機能では、ローカルプロセスやUnixドメインソケットに接続する設計があり得ます。自分のプロジェクトがどちらの実行環境でaxiosを使っているかを先に切り分けてください。

共有のaxios設定オブジェクトを使い回している

次のような実装は、更新後も見直し対象です。

const client = axios.create({
  baseURL: process.env.API_BASE_URL,
  timeout: 10000,
});

この程度なら一般的ですが、問題は外部入力を設定オブジェクトへ無制限に混ぜるケースです。

const client = axios.create({
  ...userProvidedConfig,
  baseURL: process.env.API_BASE_URL,
});

このような実装では、ユーザー入力、AIエージェントの出力、設定ファイル、拡張機能のユーザー設定が、baseURLやヘッダー、リダイレクト挙動に影響する可能性があります。更新後も、許可するキーを明示的に選別する実装に変えるべきです。

より安全な書き方の例は次の通りです。

const allowedTimeout =
  typeof userConfig.timeout === "number" ? userConfig.timeout : 10000;

const client = axios.create({
  baseURL: process.env.API_BASE_URL,
  timeout: allowedTimeout,
  headers: {
    "Accept": "application/json",
  },
});

ポイントは、外部から来た設定をそのままaxios.create()へ渡さないことです。

セキュリティ修正を「互換性のない変更」と誤解する

axios 1.15.2のallowedSocketPathsは、リリースノート上では未設定時に後方互換と説明されています。(GitHub)

つまり、通常のHTTP通信をしているだけなら、更新直後に大きな移行作業が必要になるとは限りません。ただし、危険または曖昧な設定を使っていた場合は、更新によって挙動が変わる可能性があります。

判断としては、次のように分けると現実的です。

状況対応
通常のHTTPS APIだけを呼び出すビルド、テスト、認証付き通信を確認
socketPathを使う許可リスト設定と拒否時のエラー処理を確認
リダイレクト時に認証ヘッダーを扱うリダイレクト先とヘッダー引き継ぎを確認
FormDataやアップロードを使うmultipart送信とファイル名処理を確認
大容量レスポンスを扱うmaxContentLengthやストリーム処理を確認
長時間常駐するメモリ使用量とNode警告を確認

自社プロジェクトで確認するチェックリスト

今回のMicrosoft developer platform documentation updateを受けて、実務で使えるチェックリストをまとめると次のようになります。

チェック項目OKの目安
npm ls axiosで1.15.2以上が使われている対象パッケージに古いaxiosが残っていない
ロックファイルが更新されているCIとローカルで同じ依存関係になる
npm run compileが通るTypeScriptの型エラーがない
npm testまたは相当のテストが通る既存機能が壊れていない
HTTPリクエストの正常系が通るAPI認証、タイムアウト、リトライが問題ない
リダイレクトやアップロードのテストがあるaxios 1.15.1分の修正影響を見られる
socketPath利用有無を確認した使う場合は許可リストを検討済み
長時間実行時の警告を確認したMaxListenersExceededWarningなどが出ない
外部入力をaxios設定に直接マージしていない許可キーを明示的に選別している

特に、AIエージェントや開発者支援ツールでは「AIが生成した設定」「ユーザーが入力した接続先」「ワークスペース内の設定ファイル」を扱う場面があります。こうした値をHTTPクライアント設定へ渡す場合は、依存関係更新だけでなく、入力検証と許可リスト設計も合わせて見直すべきです。

今回の更新をどう扱うべきか

今回の更新は、機能追加を目的とした大規模変更ではありません。公開差分としてはaxiosのpatch更新に見えます。しかし、axios 1.15.1と1.15.2には複数のセキュリティ強化と不具合修正が含まれており、Node.js上でHTTP通信を行うVS Code拡張や開発者向けツールでは、放置するより早めに取り込む方が安全です。(GitHub)

対応の優先順位は次の通りです。

  1. agent-governance-typescript/agent-os-vscodeを利用・フォークしている場合は、まずaxios 1.15.2への更新を反映する
  2. ビルド、lint、テスト、VS Code拡張の起動確認を行う
  3. API通信、認証、アップロード、リダイレクト、サイズ制限を確認する
  4. socketPathを使っている場合は、allowedSocketPathsの設定方針を決める
  5. 外部入力をaxios設定へ直接マージしていないかコードレビューする

最初の一歩としては、自分のプロジェクトでnpm ls axiosを実行し、どのパッケージがどのバージョンのaxiosを使っているかを確認してください。古いaxiosが残っている場合は、単にバージョンを上げるだけでなく、HTTP通信まわりの設定とテストをセットで見直すことが、今回の更新を安全に取り込むための近道です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次