This release includes 1 breaking change for platform teams planning a safe upgrade.
Published 1mo
MCP Developer Tools
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
mcp
mcp-client
mcp-sdk
mcp-server
mcp-servers
rust
Affected surfaces
breaking_upgrade
rce_ssrf
Summary
AI summaryError variant InvalidUriScheme renamed to DangerousUriScheme, breaking API usage.
Full changelog
[3.0.14] - 2026-04-15
Fixed
- Custom URI schemes now reach registered resource handlers
- Change: Replaced the hardcoded allowlist (
["file", "http", "https", "data", "mcp"]) with a narrow denylist (DANGEROUS_URI_SCHEMES = ["javascript", "vbscript"]). - Impact: Custom schemes (e.g.,
apple-doc://,notion://,slack://) are now correctly dispatched to user-defined handlers instead of being silently rejected. - Spec Compliance: Aligns with MCP 2025-11-25 spec (
server/resources.mdx), which states: "The protocol defines several standard URI schemes. This list is not exhaustive — implementations are always free to use additional, custom URI schemes." - Implementation Details:
- New function
check_uri_scheme_safetyincrates/turbomcp-core/src/security.rs(case-insensitive per RFC 3986 §3.1). - Updated macro injection in
crates/turbomcp-macros/src/server.rsat theread_resourcedispatch site. - Breaking Change: Error variant
InputValidationError::InvalidUriSchemerenamed toDangerousUriScheme. - Public API: Re-exported
DANGEROUS_URI_SCHEMES+check_uri_scheme_safetyinturbomcp-core/src/lib.rs(removedALLOWED_URI_SCHEMES).
- New function
- Security Context:
- SSRF protection for URIs dereferenced by the SDK remains enforced via
turbomcp-proxy's per-deployment scheme config. - Icon-URI check in
turbomcp-protocol(requiringhttps:/data:) remains untouched.
- SSRF protection for URIs dereferenced by the SDK remains enforced via
- Testing:
- Added regression tests in
crates/turbomcp-core/src/security.rsfor acceptance (weather://,custom+scheme://) and rejection (JavaScript:,VBScript:). - Added E2E tests in
crates/turbomcp/tests/v3_audit.rs(custom_uri_schemes_reach_registered_handlers,dangerous_uri_schemes_are_still_rejected).
- Added regression tests in
- Change: Replaced the hardcoded allowlist (
Full Changelog: https://github.com/Epistates/turbomcp/compare/v3.0.13...v3.0.14
Breaking Changes
- Error variant `InputValidationError::InvalidUriScheme` renamed to `DangerousUriScheme`.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Beta — feedback welcome: [email protected]