The report
The Python MCP SDK disclosures expose two different resource-lifetime problems. CVE-2026-109527 concerns buffering unbounded HTTP input before rejection; its remediation introduces a request-body limit. CVE-2026-59951 concerns state retained after session termination and adds expiration and capacity controls.
A bound on a request is not a bound on the number or lifetime of sessions. Deployments need both, and custom transports should be checked separately. No observed attack campaign is established by either advisory.
Both problems are lifecycle failures at different boundaries: allocation before validating a single request and retention after a session is no longer active. A four-MiB limit cannot cap the number of abandoned sessions, while session expiry cannot stop a single oversized body from being buffered before its size check.
Fixes at different lifecycle moments
The HTTP body issue concerns how much untrusted data is read into memory before its size is rejected. The session issue concerns how much state remains after a client disconnects, closes or fails initialization. Applying a four-MiB request limit cannot expire a forgotten session; imposing a session count cannot prevent a single oversized HTTP body from being buffered first. These therefore require different regression tests even though both can cause resource exhaustion.
The advisories apply to the affected SDK transport paths, not necessarily to every MCP server or to stdio-based deployments. Services using custom HTTP adapters should verify where their own request limits actually run, while stateful implementations must exercise deletion, reconnect and rejected-init paths. Neither advisory establishes production exploitation.