[Schema] SEP-2106: Harden SchemaValidator against external $ref SSRF and composition DoS
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- php
- Bereich
- backend-api-design, security
Rechercherichtung
Beginne bei SchemaValidator und untersuche die bestehende session-store-DoS-Limitkonfiguration im Hinblick auf die vorgesehene Handhabung der Limits und die Standardwerte. Überprüfe die aktuelle $ref-Behandlung und füge anschließend adversariale Regressionstests für externe Referenzen, tiefe Verschachtelung, eine große Anzahl von Subschemas und die Validierungszeit hinzu; als abgeschlossen gilt die Aufgabe, wenn externe, nicht auf dasselbe Dokument verweisende Referenzen standardmäßig blockiert werden und die Limits konfigurierbar sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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)
- Vorherrschende Sprache
- PHP
- Sterne
- 1.6k
- Forks
- 173
- Ø Merge
- 2 T. 49 Min.
- Gemergte PRs (30 T.)
- 23
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus modelcontextprotocol/php-sdk
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan OffenServer
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
modelcontextprotocol/php-sdk#468 · 2 Kommentare ·
-
needs confirmation needs maintainer action Server
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
modelcontextprotocol/php-sdk#398 · 1 Reaktion ·
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
modelcontextprotocol/php-sdk#510 · 1 Kommentar ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
modelcontextprotocol/php-sdk#504 ·
Alle Issues in modelcontextprotocol/php-sdk
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
getgrav/grav-plugin-api#45 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
RSS-Bridge/rss-bridge#5098 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
phingofficial/phing#2025 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
silverstripe/developer-docs#911 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100