[Schema] SEP-2106: Harden SchemaValidator against external $ref SSRF and composition DoS
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- php
調査の方向性
SchemaValidator から開始し、意図されたリミットの使いやすさとデフォルト値を把握するために、既存の session-store の DoS リミット設定を調査します。現在の $ref 処理を確認し、その後、外部参照、深いネスト、大量のサブスキーマ数、検証時間に対する敵対的な回帰テストカバレッジを追加します。同じドキュメントを参照しない外部参照がデフォルトでブロックされ、リミットを設定可能になれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Implements the security hardening portion of SEP-2106 for the MCP Spec 2026-07-28 release.
Tracked by umbrella #337.
Spec rationale
Once
$refand rich composition land ininputSchema/outputSchema, naive validators are exposed to: SSRF via external$refURIs, and DoS via pathological compositions / deep nesting / large subschema counts.
PHP SDK changes
SchemaValidatorMUST NOT auto-dereference external$refURIs (block any non-same-document reference by default).- Bound: schema depth, subschema count, validation time.
- Configurable limits with sensible defaults (mirror existing session-store DoS limit ergonomics).
- Add regression tests with adversarial schemas.
Related
- Umbrella #337
- Vocabulary sub-issue (introduces
$refsupport that this hardens)
- 主要言語
- PHP
- スター
- 1.6k
- フォーク
- 173
- 平均マージ
- 2日 49分
- マージ済み PR(30日)
- 23
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
modelcontextprotocol/php-sdk のほかの issue
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan オープンServer
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
modelcontextprotocol/php-sdk#468 · コメント 2 件 ·
-
needs confirmation needs maintainer action Server
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
modelcontextprotocol/php-sdk#398 · リアクション 1 件 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
modelcontextprotocol/php-sdk#510 · コメント 1 件 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
modelcontextprotocol/php-sdk#504 ·
modelcontextprotocol/php-sdk の issue をすべて見る
似ている issue
-
priority: p3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
googleapis/librarian#7636 ·
-
0. Needs triage bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
nextcloud/fulltextsearch#1011 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
phpstan/phpstan-doctrine#794 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
Automattic/static-site-importer#1767 ·