AI SDK 7.0.172 makes remote file downloads explicit, tightening the SSRF boundary around structured generation
Vercel released AI SDK 7.0.172 on November 13. experimental_extract and experimental_decide no longer silently download remote file URLs through global fetch. Remote URLs now require an explicit experimental_download hook, while inline bytes, base64, and data URLs continue to work directly.
Why it matters
Generative interfaces often pass uploads, tool results, and multimodal attachments into structured extraction or decision flows. Implicit downloads turn a file field into server-side network access. An explicit hook lets the host decide whether networking is allowed and apply DNS and address validation, limits, and audit controls.
A closer look
The official fix notes that prior literal-IP validation could not stop hostnames that resolve to private addresses. Applications must now inject a downloader for remote URLs and can use createDownload({fetch}) with a DNS-protected transport. A model's fetch setting does not cover core state downloads. Without a custom fetch, createDownload uses global fetch and provides no DNS protection.
Who this is for
Frontend, platform, and security teams using AI SDK 7 structured extraction, decision flows, multimodal attachments, or server-side generative UI.
Original sources
- Vercel AI SDK official release and security fix commit ↗github.com
- Official explicit-download security fix ↗github.com
Revisions & corrections (1)
— Verified official release and fix commit; distinct new event after the previous successful collection.