AI SDK 7.0.172 将远程文件下载改为显式注入,收紧结构化生成的 SSRF 边界
Vercel 于 11 月 13 日发布 AI SDK 7.0.172。experimental_extract 与 experimental_decide 不再通过全局 fetch 静默下载远程文件 URL;远程 URL 必须显式提供 experimental_download,内联字节、base64 与 data URL 仍可直接处理。
为什么值得关注
生成式 UI 常把上传、工具结果和多模态附件送入结构化提取或决策。隐式下载会把文件字段变成服务端网络访问能力;显式下载钩子让宿主决定是否允许联网,并应用 DNS 与地址校验、限流和审计。
技术细节
官方提交说明,旧的字面 IP 校验不能阻止域名解析到私网地址。新版要求应用为远程 URL 注入下载函数,并提供 createDownload({fetch}) 以接入带 DNS 保护的传输层;模型自身的 fetch 配置不覆盖核心文件下载路径。不传自定义 fetch 时,createDownload 会使用全局 fetch,且不提供 DNS 保护。
适合哪些读者
使用 AI SDK 7 的结构化提取、决策、多模态附件或服务端生成式 UI 的前端、平台与安全团队。
原始来源
- Vercel AI SDK official release and security fix commit ↗github.com
- Official explicit-download security fix ↗github.com
修订与更正记录 (1)
— Verified official release and fix commit; distinct new event after the previous successful collection.