fastmcp/tests
Jeremiah Lowin 016b9f90e0
Fix confused deputy attack via consent binding cookie (#3201)
* Add consent binding cookie to prevent confused deputy attacks (GHSA-rww4-4w9c-7733)

The OAuthProxy's consent page verified user intent but didn't bind the
consenting browser to the IdP callback. An attacker could intercept the
upstream authorization URL after consent and send it to a victim, whose
browser would complete the flow without having the consent cookie.

This adds a signed consent binding cookie set during consent approval
(both manual and auto-approve paths) and verified in the IdP callback
handler. A different browser won't have this cookie and gets a 403.

* Use startswith for URL assertion in consent binding test

* Store consent bindings as per-transaction map to support parallel flows

* Only accept __Host- consent binding cookie on HTTPS

* chore: Update SDK documentation

---------

Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2026-02-17 10:24:07 -05:00
..
cli Move fastmcp dev to fastmcp dev inspector 2026-02-13 22:42:38 -05:00
client Fix ty 0.0.17 diagnostics and bump lockfile 2026-02-16 16:13:38 -05:00
contrib Add session-specific visibility control via Context (#2917) 2026-01-18 22:31:06 -05:00
deprecated Remove deprecated FastMCP() constructor kwargs (#3148) 2026-02-11 11:39:34 -05:00
experimental Unify SamplingHandler and promote OpenAI handler (#2616) 2025-12-14 15:22:43 -05:00
fs Add standalone decorators and eliminate fastmcp.fs module (#2832) 2026-01-10 12:16:35 -05:00
integration_tests Refactor OAuthProxy into focused modules (#2935) 2026-01-19 10:10:07 -05:00
prompts Fix Field() handling in prompts (#3050) 2026-02-01 21:28:44 -05:00
resources Fix Field() handling in prompts (#3050) 2026-02-01 21:28:44 -05:00
server Fix confused deputy attack via consent binding cookie (#3201) 2026-02-17 10:24:07 -05:00
telemetry Address Jeremiah's telemetry feedback 2026-01-14 09:45:41 -05:00
tools Make $ref dereferencing optional via FastMCP(dereference_refs=...) (#3151) 2026-02-11 13:45:37 -05:00
utilities Fix ty 0.0.17 diagnostics and bump lockfile 2026-02-16 16:13:38 -05:00
__init__.py Update type handling for resources 2024-11-29 19:42:46 -05:00
conftest.py Drop diskcache dependency (CVE-2025-69872) (#3185) 2026-02-16 16:43:15 -05:00
test_apps.py Rename ui= to app= and consolidate ToolUI/ResourceUI into AppConfig (#3117) 2026-02-08 20:26:47 -05:00
test_json_schema_generation.py fix: use SkipJsonSchema to exclude callable fields from JSON schema generation (#3048) 2026-02-01 21:30:48 -05:00
test_mcp_config.py Fix include_tags/exclude_tags ignored without tools in MCPConfig (#3186) 2026-02-13 20:38:56 -05:00