MCPサーバー群の新たなセキュリティ更新で、ファイルアクセスとウェブリクエスト処理の脆弱性8件が修正された。ファイルを扱ったりウェブ資料を取得したりするサーバーを運用する開発者は、構成要素ごとの修正版をインストールし、許可範囲外へのアクセスを減らせる。
1. 3つのサーバーで脆弱性8件を修正
10月25日に公開されたリリースノートによると、ファイルシステムサーバーで4件、Everythingで1件、Fetchで3件が修正された。ファイル操作、ウェブページからのツール呼び出し、外部資料のリクエストという異なるアクセス経路が修正対象だ。
修正の共通点は、検査を通過した対象と実際の操作対象を一致させることにある。ファイルアクセスは許可されたディレクトリ内にとどめ、ウェブリクエストはオリジンと最終的な接続先アドレスまで確認するようにした。
2. ファイルシステム操作を許可パス内に制限
ファイルシステムサーバーは、検査したディレクトリと実際の書き込み先が異なり得る問題を修正した。シンボリックリンクは別のパスを指すリンクだ。アクセス検査から書き込みまでの間に親ディレクトリがこのリンクに置き換わっても、書き込み、編集、ディレクトリ作成、移動の宛先が許可領域外に向かわないようにした。
パスの検査時に末尾の引用符や空白を取り除く動作も修正した。検査するパスとファイル操作に使うパスが一致するため、許可されたディレクトリ名にこれらの文字を付加した兄弟ディレクトリ、つまり同じ親フォルダー内のディレクトリへのアクセスによる回避を防げる。
大文字と小文字を区別しないストレージでは、新しいパスを作る際に大文字と小文字だけが異なるシンボリックリンクが検査を通過する問題も解消した。リリースノートはmacOSの標準環境を例に挙げ、この問題が2026.8.31で発生したと説明している。
ファイル一覧とサイズを表示する機能も、各項目のアクセス権限を先に確認する。許可領域内のシンボリックリンクを通じて、領域外のファイルのサイズや更新時刻が露出する問題を防ぐ変更だ。
3. ウェブリクエストはオリジンと接続先を再確認
Everythingのウェブ通信は、別のウェブオリジンからのリクエストを拒否するようになった。リクエスト元のウェブオリジンを示すOriginを確認し、すべてのオリジンを許可する応答をやめる。利用者が訪問したウェブページがサーバーツールを呼び出したり結果を読み取ったりする経路を遮断する措置だ。
Fetchは、アドレス検査に使うホスト名と実際の接続に使う名前を一致させた。国際化ドメイン名、つまり非ASCII文字を使うドメイン名を異なる形式で検査・接続する違いを利用し、内部アドレスにアクセスできる問題を修正した。
また、IPv6アドレス内にIPv4アドレスを含むNAT64アドレスのうち、64:ff9b::/96の範囲を検査する。含まれるアドレスがプライベートネットワーク、内部専用ネットワーク、自分自身、同一リンク内を指す場合は接続を拒否する。外側のアドレス形式だけでなく、その中の実際の宛先を調べる方式だ。
別のアドレスに移動するリダイレクトが発生するたびに、移動先のrobots.txtも再確認する。自動収集に対するサイトのアクセス規則を、最初にリクエストしたアドレスでしか確認しなかった動作を修正した。
4. 日付バージョンの利用者はバージョンを直接指定
ファイル操作とウェブリクエストの許可境界が強化される一方、日付ベースのバージョンを使うTypeScriptサーバーの運用者は、修正版を直接指定してインストールする必要がある。書き込み先の保護はLinuxとmacOSに適用されるが、Windowsでは一部のみ修正された。
ファイルシステムとEverythingの修正版は2.0.1だ。TypeScriptサーバーは日付形式から、変更の意味を数字で表すセマンティックバージョニングへ移行した。パッケージマネージャーはこの修正版を従来の日付バージョンより低く評価し、アップグレードとして提示しないため、次のように指定してインストールする。
npm install @modelcontextprotocol/server-filesystem@2.0.1Fetchは2026.10.19までのバージョンが影響を受け、修正版は2026.10.24だ。ファイルシステム系とは異なり日付形式を維持するため、3つのサーバーを同じバージョン番号にそろえるのではなく、構成要素ごとの修正版を確認して適用することが重要だ。
脆弱性8件への対応ではサーバーごとのバージョン確認が重要であり、日付バージョンの利用者は自動更新に任せず、修正版を指定する必要がある。
