Python製のMCPサーバー「excel-mcp-server」(haris-musa氏開発)に、excel-mcp-server 脆弱性CVE-2026-40576として公表されたパストラバーサルの欠陥が見つかった。ファイルパスの検証が不十分だったため、SSEまたはstreamable-HTTPトランスポートで起動している場合に限り、意図した作業ディレクトリの外にある任意のファイルへ読み書きできる可能性がある。GitLab Advisory DatabaseはCVSSスコアを9.4(Critical)としている。

本記事の対象はharis-musa/excel-mcp-serverであり、同じ「Excel向けMCP」でも当サイトが別記事で紹介したSylvianAI/sv-excel-agent(MCPサーバー+エージェントランナー+Webデモ+Slackボットの4点セット)とは開発元もリポジトリも異なる、別プロダクトだ。検索結果で混同しないよう、まずこの点を明確にしておく。

CVE-2026-40576の時系列。v0.1.7以前はパス検証が不十分、2026-04-12にv0.1.8が修正版として公開、2026-04-14以降アドバイザリが公表・更新。影響はSSE/streamable-HTTP起動時のみでstdioのみの利用者は対象外
excel-mcp-server CVE-2026-40576の時系列(GitLab Advisory Database・SentinelOne Vulnerability Databaseの公表情報に基づく)。

自分の環境でexcel-mcp-serverを使っているなら、まず以下を確認する。

# バージョン確認(pip / uvx どちらの導入方法でも試す)
pip show excel-mcp-server 2>/dev/null || uvx excel-mcp-server --version 2>/dev/null
# v0.1.7以下なら影響を受ける可能性あり(v0.1.8以上で修正済み)

# MCPクライアント設定でトランスポートモードを確認
# ("transport": "stdio" であれば本脆弱性の対象外)
grep -A3 '"excel"' ~/.config/*/mcp*.json ~/Library/Application\ Support/**/mcp*.json 2>/dev/null
30秒でわかる excel-mcp-server 脆弱性CVE-2026-40576(2026年8月時点)
  • 対象haris-musa/excel-mcp-server(Python製・Excel操作用MCPサーバー。⭐4,109/MIT)。
  • 何が起きた:ファイルパスの検証が不十分で、意図した作業ディレクトリの外にある任意のファイルへ読み書きできる可能性があった(パストラバーサル)。
  • 影響条件SSE(非推奨)またはstreamable-HTTPトランスポートで起動している場合のみstdioのみの利用者は対象外。
  • CVSS9.4(Critical)(GitLab Advisory Database)。
  • 修正:v0.1.8(2026-04-12公開)。v0.1.7以下が影響対象。
  • 対策:excel-mcp-serverをv0.1.8以上へアップデートし、起動しているトランスポートモードを確認する。

エージェントIDE・開発者ツールを狙うサプライチェーン攻撃の全体像は サプライチェーンセキュリティ2026|攻撃手法・防御ツール・実践チェックリスト をご覧ください。

excel-mcp-server 脆弱性CVE-2026-40576とは:パストラバーサルの正体

excel-mcp-serverは、Model Context Protocol(MCP)を通じてAIエージェントにExcelファイルの読み書き機能を提供するPython製のOSSだ。GitHub上で⭐4,109・fork456を集め、contributor数は10名。ライセンスはMITで、LICENSEファイルの実体とREADMEの記載も一致している。開発元は企業ではなく個人(haris-musa氏)で、READMEにも企業名の記載は無い。総コミット数はGitHub APIのページネーションから概算するとおよそ46件だが、これは概算であり厳密な全数ではない。

最終コミットは2026-04-12で、これは脆弱性修正版であるv0.1.8のリリース日と同じだ。それ以降、本記事執筆時点(2026-08-16)まで約4か月コミットが無く、開発は静穏な状態にある。ただし脆弱性の修正自体は迅速に行われており、メンテナンス放棄と判断すべきではない。star数・fork数・contributor数の規模は、Excel操作という具体的な用途に特化したMCPサーバーとしては妥当な範囲で、star数と実体の間に大きな乖離は見られない。

CVEの内容は、ファイルパスの検証不足によるパストラバーサルだ。excel-mcp-serverはツール呼び出し時に操作対象のExcelファイルパスを受け取るが、そのパスが意図した作業ディレクトリの内側に収まっているかどうかのチェックが不十分だった。結果として、../のような相対パス指定を悪用し、本来アクセスできないはずのファイルへ読み書きできる可能性があった。GitLab Advisory DatabaseはこのCVEにCVSSスコア9.4(Critical)を付与している。

excel-mcp-serverのバージョン体系はv0.1.8という0.x系で、pre-1.0の段階にある。READMEには「Star History」バッジ以外に実験的(experimental)である旨を明記したセクションは無いが、バージョン番号自体がまだ安定版に達していないことを示している。contributor数は10名だが、コミット履歴のボリュームからはメンテナが少数に集中している可能性がある。ただしこの内訳(誰が何割のコミットを担っているか)まではGitHub APIのstats/contributorsエンドポイント等で追加確認しないと正確な数字にはならず、本記事の調査範囲では確認していない。「contributorが10名いる」という数字だけを見て開発体制が分厚いと判断するのは早計、という点に留意してほしい。

リリース履歴を見ると、直前のマイナーバージョンであるv0.1.7の公開は2025-08-06で、そこから約8か月を経て脆弱性修正版のv0.1.8が2026-04-12に公開されている。この間に他の機能追加リリースが挟まっていたかどうかは、GitHub Releasesの一覧上は複数リリースが存在することしか確認できておらず、各リリースの詳細な内容までは本記事では立ち入らない。

なお、同じ「Excel×MCP」の括りで検索するとSylvianAI/sv-excel-agentがヒットすることがあるが、これは開発元・コードベースともに別のプロダクトだ。sv-excel-agentはMCPサーバー本体に加えてエージェントランナー・Webデモ・Slackボットまで含むフルスタック構成であり、単体のMCPサーバーである本記事対象のexcel-mcp-serverとは設計思想も異なる。両者を比較すると次のようになる。

項目 haris-musa/excel-mcp-server(本記事対象) SylvianAI/sv-excel-agent(別リポジトリ)
ライセンス MIT MIT
構成 単体のMCPサーバー MCPサーバー+エージェントランナー+Webデモ+Slackボット
本CVEとの関係 CVE-2026-40576の対象 対象外(別コードベース)

自分の環境が影響を受けるか確認する方法

確認すべきポイントは2つに分けられる。

バージョン確認:excel-mcp-serverがv0.1.7以下であれば、影響対象の版に該当する
トランスポートモードの確認SSE(非推奨)またはstreamable-HTTPで起動している場合のみ影響する。stdioのみで起動している場合はこの脆弱性の対象外

トランスポート別の影響有無。SSE(非推奨)で起動・streamable-HTTPで起動・0.0.0.0バインドかつ認証なし構成は影響を受けうる。stdioのみで起動・ローカルプロセス間通信のみ・外部ネットワーク非公開は影響なし
excel-mcp-serverのトランスポートモード別の影響有無。stdioのみの利用者は対象外。出典: GitLab Advisory Database・SentinelOne Vulnerability Database。

読者自身の環境で確認するコマンドは次の通りだ。

# バージョン確認(pip / uvx どちらの導入方法でも試す)
pip show excel-mcp-server 2>/dev/null || uvx excel-mcp-server --version 2>/dev/null
# MCPクライアント設定でトランスポートモードを確認
# ("transport": "stdio" であれば本脆弱性の対象外)
grep -A3 '"excel"' ~/.config/*/mcp*.json ~/Library/Application\ Support/**/mcp*.json 2>/dev/null

本記事の執筆環境で上記コマンドを実際に実行したところ、excel-mcp-server自体が導入されていない検証用サンドボックスだったため、pip showuvxのいずれも該当パッケージを検出せず、mcp*.jsonの検索も空振りだった。これはコマンド自体が正しく動作していることの確認であり、読者は自分の実環境(excel-mcp-serverを実際に導入しているマシン)で同じコマンドを実行してほしい。

2つ目のコマンドが探しているtransportフィールドは、MCPクライアント(Claude Desktop・Cursor・その他agentic IDE等)の設定ファイルの中で、各MCPサーバーごとの起動方式を指定する項目だ。"transport": "stdio"と書かれていれば、そのMCPクライアントはexcel-mcp-serverをローカルの子プロセスとして起動し、標準入出力だけでやり取りする。一方"transport": "sse""transport": "streamable-http"、あるいはURLとポート番号を伴う設定になっている場合は、ネットワーク経由での接続を前提にした起動方式であり、本CVEの影響対象に該当する可能性がある。設定ファイルが複数のMCPサーバーを束ねている場合は、excel-mcp-server(あるいはそれに対応するキー名)のブロックだけを確認すればよく、他のMCPサーバーの設定まで読み替える必要はない。

「stdioなら安全」という一般化はしないこと
このCVEに関してはstdioトランスポートは対象外だが、これは「excel-mcp-serverが全般的に安全」あるいは「MCPサーバーは全部危険」という単純化された結論を意味しない。バージョン自体はv0.1.8以上を使うのが安全側の判断であり、他のMCPサーバー・他のトランスポートモードには個別の脆弱性が報告されている(後述)。

なぜSSE/streamable-HTTPだけが危険なのか:MCPサーバーの設計上の弱点

excel-mcp-serverは、stdio・SSE(非推奨)・streamable-HTTPの3種類のトランスポートに対応している。stdioは標準入出力を介したローカルプロセス間通信で、外部ネットワークに公開されない。一方でSSEとstreamable-HTTPはネットワーク経由でMCPサーバーへ接続する方式で、リモートのクライアントやリバースプロキシ経由でのアクセスを想定した構成だ。

この構造上の違いが、パストラバーサルの実害度を左右する。stdioで起動している場合、攻撃者がそもそもそのプロセスに任意のリクエストを送り込む経路を持たない。しかしSSEやstreamable-HTTPでネットワーク越しに公開されたMCPサーバーであれば、ファイルパスの検証不足を突く細工されたリクエストを外部から送信できてしまう。

flowchart LR A["攻撃者が細工したファイルパスを含む
ツール呼び出しリクエストを送信"] --> B{"起動中のトランスポートは?"} B -- "stdio" --> C["ローカルプロセス間通信のみ
外部から到達不能"] B -- "SSE / streamable-HTTP" --> D{"パス検証が行われるか"} D -- "本来あるべき制御" --> E["作業ディレクトリ内のみ
読み書き許可"] D -- "CVE-2026-40576" --> F["作業ディレクトリ外の
任意ファイルへ読み書き"]
excel-mcp-server固有の問題である以前に、「MCPサーバーにネットワーク越しの入口を作ると、ツール呼び出しの引数検証がそのまま攻撃面になる」というagentic連携ツール全般の設計課題が根底にある。

MCPエコシステムでは、サーバーをローカルのstdioだけで完結させず、チームで共有する目的でSSEやstreamable-HTTPを選ぶケースが増えている。だが「ネットワークに公開する」という判断は、同時に「ツールが受け取る引数の検証を厳格に行う」という責務とセットでなければならない。今回のCVEは、その検証がファイルパスという基本的な入力に対して不十分だった事例だ。

MCPの仕様上、SSEはすでに非推奨(legacy)のトランスポートとして扱われており、後継のstreamable-HTTPへの移行が推奨されている。ただし「非推奨」というステータス自体は脆弱性の有無とは別軸の話であり、streamable-HTTPを使っているからといって自動的に安全というわけではない。実際、今回のCVE-2026-40576はstreamable-HTTPでも影響対象に含まれている。ネットワーク経由でMCPサーバーを公開する場合は、トランスポートの新旧にかかわらず、そのサーバーが受け取るすべての引数(今回であればファイルパス)に対する検証実装を個別に確認する必要がある。

読者の3つの問いへの答え
このOSSは結局何ができる:excel-mcp-serverはAIエージェントにExcelファイルの読み書きツールを提供するMCPサーバーで、本脆弱性はそのファイルパス検証の不足を突く。 ② 何を解決する記事か:CVSS9.4という高スコアの脆弱性について、影響条件(トランスポートモード)を正確に切り分け、読者が自分の環境をその場で確認できる手順を示す。 ③ 何を代替できるか:この記事自体は対策を代替しない。v0.1.8以上へのアップデートとトランスポートモードの確認が唯一の実効的な対応になる。

類似のMCPサーバー脆弱性と比べる

MCPサーバー・MCP対応ツールを対象にした脆弱性は、2026年に入って複数報告されている。excel-mcp-serverのCVE-2026-40576は、これらと並べると「設計上、どこの境界検証が甘かったか」の系統が見えてくる。

事例 対象 脆弱性の系統 主な攻撃経路
excel-mcp-server(本記事) haris-musa/excel-mcp-server パストラバーサル(CVSS9.4) SSE/streamable-HTTP起動時のファイルパス検証不足
MCP脆弱性!STDIOトランスポートの設計欠陥で20万台のサーバーがRCEの危険に——OX Securityが警告 MCP stdio実装全般 トランスポート設計自体の欠陥 STDIOトランスポートの設計欠陥
AWS Kiro 脆弱性CVE-2026-10591とは|MCP設定書き換えRCEを2系統の報告から検証 AWS Kiro 設定ファイル書き換え→RCE エージェントのファイル書き込み権限の悪用
Flowise 脆弱性CVE-2026-40933|CustomMCPで再燃したRCE、CVSS9.9の内実 Flowise CustomMCP RCE(CVSS9.9) カスタムMCPノードの実行制御不足

excel-mcp-serverの事例が他3件と異なるのは、攻撃の起点が「ファイルパスという単純な入力値」である点だ。AWS Kiroは設定ファイルそのものへの書き込み権限、Flowiseはカスタムノードの実行制御、STDIOトランスポートの設計欠陥はプロトコル自体の実装に起因する。一方excel-mcp-serverは、ツール呼び出しの引数として渡されるファイルパスを、作業ディレクトリの外へ逃がさないようにするという、Webアプリケーションの脆弱性としては古典的な部類の検証が欠けていた。MCPという新しいプロトコルの上でも、こうした基本的な入力検証の甘さがそのまま攻撃面になることを、この事例は示している。

言い換えると、MCPサーバーの脆弱性は「MCPというプロトコル自体が抱える新しい弱点」と「MCPサーバーの実装側が、Webアプリケーションと同じ古典的な検証を怠った弱点」の2種類に大別できる。STDIOトランスポートの設計欠陥は前者に近く、excel-mcp-serverのパストラバーサルやFlowiseのCustomMCP RCEは後者に近い。読者が新しいMCPサーバーを導入・自作する際は、プロトコルレベルの新しい注意点だけでなく、パストラバーサル・コマンドインジェクションといった従来からある入力検証の基本を、MCPのツール呼び出しという新しい経路に対しても同じように適用できているかを確認する価値がある。

対策とアップデートの進め方

対応は明確で、v0.1.8以上へのアップデートが最優先になる。

アップデート:excel-mcp-serverをv0.1.8以上に更新する(pip install --upgrade excel-mcp-serverまたはuvx経由での再取得)
トランスポートモードの確認:SSE・streamable-HTTPで起動している場合は、アップデート適用が完了するまで一時的にstdioへ切り替えるか、外部からのアクセスを制限する
設定ファイルの点検:MCPクライアント設定(mcp*.json等)を確認し、意図せずSSE/streamable-HTTPが有効になっていないか、想定外のネットワーク公開が無いかを確認する

SSE・streamable-HTTPでexcel-mcp-serverを共有運用しているチームは、個人の端末だけでなくCI環境や共有の開発コンテナでも同様のバージョン確認が必要になる。特に、リバースプロキシ越しに複数人がアクセスできる構成にしている場合、アップデートが完了するまでの間はアクセス元を制限する運用も検討したい。

アップデート作業自体は、pip経由であればpip install --upgrade excel-mcp-serverで完結し、破壊的な設定変更は必要ない(バージョン間の互換性の詳細まではCHANGELOG等の一次情報を個別に確認することを推奨する)。uvx経由で都度最新版を取得する運用にしている場合は、キャッシュされた古いバージョンが使われ続けていないかをuvx excel-mcp-server --versionで確認しておくとよい。Dockerイメージやコンテナベースでexcel-mcp-serverを配布・運用している場合は、イメージのビルド日時とv0.1.8のリリース日(2026-04-12)を突き合わせ、古いイメージが再ビルドされずに使われ続けていないかも点検対象に含めたい。

対応の優先順位としては、まずネットワークに公開している(SSE・streamable-HTTPで起動している)インスタンスから着手し、ローカルのstdio専用インスタンスは相対的に優先度を下げてよい。ただし本記事のFAQでも触れる通り、stdioが対象外なのは今回のCVE-2026-40576に限った話であり、将来的に別の脆弱性が見つかった際にも同じ判定が成り立つとは限らない。バージョン自体を最新に保つ運用を基本方針とし、トランスポートモードによる影響の有無はあくまで「今回のCVEに対する緊急度の判断材料」として扱うのが実務的だ。

まとめ:excel-mcp-server 脆弱性CVE-2026-40576から読み取れること

excel-mcp-server 脆弱性CVE-2026-40576は、Excel操作用MCPサーバーのファイルパス検証不足が、CVSS9.4(Critical)のパストラバーサルへ直結した事例だ。影響はSSE(非推奨)またはstreamable-HTTPトランスポートで起動している場合に限られ、stdioのみで利用している場合は対象外となる。修正版はv0.1.8(2026-04-12公開)で、影響対象はv0.1.7以下だ。

この記事のポイント
・excel-mcp-server(haris-musa氏開発・MIT・⭐4,109)にパストラバーサルの脆弱性CVE-2026-40576(CVSS9.4 Critical)
・影響はSSE(非推奨)/streamable-HTTPトランスポートで起動時のみ。stdioのみの利用者は対象外
・修正版はv0.1.8(2026-04-12公開)。影響対象はv0.1.7以下
・「stdioなら安全」という一般化はできない点に注意(バージョン自体のアップデートも必要)
・SylvianAI/sv-excel-agentとは開発元・コードベースが異なる別プロダクト

読者自身の環境でexcel-mcp-serverを使っている場合は、まずバージョンとトランスポートモードを確認し、該当する場合はv0.1.8以上へアップデートしてほしい。MCPサーバーをネットワークへ公開する構成を選ぶ際は、今回のような基本的な入力検証の不足が攻撃面に直結することを踏まえ、バージョン管理と定期的なアップデート確認を運用に組み込むことが望ましい。

参照ソース

CVE-2026-40576: excel-mcp-server has a Path Traversal issue(GitLab Advisory Database) — 影響バージョン・CVSSスコア・脆弱性の技術的根拠
CVE-2026-40576: Excel MCP Server Path Traversal Flaw(SentinelOne Vulnerability Database) — 脆弱性概要のセカンドソース
haris-musa/excel-mcp-server(公式リポジトリ) — README・トランスポート設定・リリース履歴