agents@0.11.2

cloudflare/agentsagents@0.11.2Apr 17, 2026by github-actions[bot]

AI Summary

This patch fixes a security vulnerability in the MCP client's SSRF protection where the IPv6 link-local range `fe80::/10` was not being fully blocked. The previous `startsWith("fe80")` check only matched `fe80::/16`, allowing addresses in the `fe81::`–`febf::` range to slip through. The fix uses a regex to properly match the full /10 range and factors out the IPv6 private-range logic.

Key Highlights

  • Fixed SSRF check to block full IPv6 link-local range `fe80::/10` instead of just `fe80::/16`
  • Addresses in `fe81::`–`febf::` range were previously leaking through the security check
  • Factored IPv6 private-range logic into new `isPrivateIPv6` function
  • Added regression tests for previously-leaking prefixes and boundary cases

Full Release Notes

### Patch Changes

-   [#1326](https://github.com/cloudflare/agents/pull/1326) [`d5042a9`](https://github.com/cloudflare/agents/commit/d5042a90df0f863da8ce43ebacec879668ef2423) Thanks [@threepointone](https://github.com/threepointone)! - fix(mcp): block full IPv6 link-local range `fe80::/10` in SSRF check

    `isBlockedUrl` in the MCP client claimed to block `fe80::/10` but the
    previous `startsWith("fe80")` check only matched the narrower
    `fe80::/16`, letting valid link-local addresses in the `fe81::`–`febf::`
    range slip through. Replaced with a regex that matches the full /10
    (first hextet `fe80` through `febf`), factored the IPv6 private-range
    logic into `isPrivateIPv6`, and added regression tests for the
    previously-leaking prefixes plus negative cases at the /10 boundary
    (`fe7f::`, `fec0::`).

    Reported in [#1325](https://github.com/cloudflare/agents/issues/1325).