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)
対応の優先順位は次の通りです。
agent-governance-typescript/agent-os-vscodeを利用・フォークしている場合は、まずaxios 1.15.2への更新を反映する- ビルド、lint、テスト、VS Code拡張の起動確認を行う
- API通信、認証、アップロード、リダイレクト、サイズ制限を確認する
socketPathを使っている場合は、allowedSocketPathsの設定方針を決める- 外部入力をaxios設定へ直接マージしていないかコードレビューする
最初の一歩としては、自分のプロジェクトでnpm ls axiosを実行し、どのパッケージがどのバージョンのaxiosを使っているかを確認してください。古いaxiosが残っている場合は、単にバージョンを上げるだけでなく、HTTP通信まわりの設定とテストをセットで見直すことが、今回の更新を安全に取り込むための近道です。

コメント