MCP脆弱性triage: advisory・利用経路・緩和策の一致
公式mcp-server-git advisoryは2026.1.14未満のgit_add path処理を対象とします。配備version、到達可能なtool経路、processから見えるfile、更新または隔離の実証がtriageに必要です。
Read in Englishsecurity advisoryを導入判断へ変えるには、advisoryが実配備artifactに一致し、影響する利用経路へ到達でき、緩和策がその環境で有効という三つの接続が必要です。公式mcp-server-git advisory GHSA-vjqx-cfc4-9h6vは具体例になります。2026.1.14未満では、git_addへ渡したfile引数の../がrepository外へ解決され、そのfileをGit indexへ追加できました。修正版は2026.1.14です。
Key Findings
- 影響versionは「すべてのGit MCP server」より狭い範囲です。 対象はpip package
mcp-server-gitの2026.1.14未満です。 - 利用経路も「すべてのGit操作」ではありません。 公表された欠陥は
git_addのfile pathです。 - 影響は後続権限で変わります。 範囲外fileのstageに加え、commit、push、credential、host上の機密fileへ到達できる場合は影響が大きくなります。
- source更新だけでは配備証拠になりません。 実行環境の修正版artifactまたは検証済みcontrolが受入条件です。
Triage記録
| 質問 | 取得する証拠 | 判断への影響 |
|---|---|---|
| artifactが対象か | 実環境内のpackage名と正確なversion | 別packageまたは2026.1.14以降なら、このadvisoryの影響範囲とは一致しない |
| 経路へ到達できるか | clientがgit_addを公開しているか、誰が呼べるか | tool非公開は露出を下げるが、artifactを修正しない |
| processから何が見えるか | repository、mount、OS user、可読file、Git credential | 範囲外fileと後続commit/pushの到達範囲を定める |
| 緩和策が配備済みか | package version、image digestまたはlock、restart記録、拒否test | このadvisoryのclose根拠になる |
公式advisoryは、後続のcommitとpushによる情報流出の可能性を説明しています。この順序は重要です。git_addはindexを変更し、外部への開示は別操作と接続先に依存します。triageでは、最初の境界違反と利用可能な後続操作の両方を記録します。追加callが必要という理由で欠陥を軽視せず、範囲外fileのstageや送信を確認していない段階で情報流出済みとも断定しません。
範囲を限定した受入test
破棄可能なrepositoryと、その隣に無害なfileを用意します。実配備と同じimageまたはPython環境へmcp-server-git 2026.1.14以降を固定してinstallします。repository内の通常pathが追加できることを確認した後、隣の無害fileへ解決される相対pathを渡し、indexへ入る前に拒否されることを確認します。toolの応答文だけでなく、実際のindexを確認します。
更新後もprocess権限を狭めます。意図したrepositoryだけを見せ、無関係なcredentialとfileを不可視にし、push credentialを承認済み接続先へ限定します。これらは将来の欠陥や設定ミスの影響を下げますが、影響versionが存在する場合のpackage更新を代替しません。
確認範囲と限界
2026年9月22日に公式advisoryとproject資料を確認したtriageです。特定組織が影響versionを利用していることや、情報流出が発生したことの証拠ではありません。対象は公表されたgit_add path問題であり、repository内の全advisory、すべてのGit引数、変更系Git toolの正当な副作用までは含みません。公式servers projectもreference implementationでありproduction-readyではないと説明しているため、本番利用には配備固有のthreat modelとcontrolが必要です。
