v2.44.0 (2026-09-16)
Pydantic AI 发布 v2.44.0(2026-09-16),修复四个安全问题,均通过 web_fetch_tool 或 OpenTelemetry instrumentation 触达。GHSA-vmxc-h2x2-jmf3(中危):在 URL 选择本地网络访问时,cloud-metadata 与 private-IP 黑名单可被 IPv6 zone identifier 绕过,涉及 FileUrl(force_download='allow-local') 与 web_fetch_tool(allow_local_urls=True),两者默认关闭。GHSA-fpf4-vwcp-v4hp(中危):web_fetch 在事件循环上以超线性时间处理响应(HTML 转换与字符集解码),单个攻击者页面可阻塞进程内所有 agent。GHSA-22h6-qm39-v87j(低危):web_fetch_tool 域名列表按字面比较而非解析器形式,被屏蔽域名可用其他拼写访问。GHSA-4x9p-g9wm-8q7f(低危):InstrumentationSettings(include_content=False) 下 span 仍携带异常、错误状态、指令与输出模板。
发展脉络
- 首次出现v2.44.0 (2026-09-16)Pydantic AI
- 当前判断Agent 框架的抓取与可观测性组件正在成为新的攻击面:它们同时持有网络出口与进程内执行权,一旦被滥用,影响范围从单次请求扩大到同进程的所有 agent。这类修复以补丁形式发布,说明开源 agent 生态的安全响应速度在提升,但默认关闭的高风险开关仍把配置责任转移给了使用者。Agent Pulse · 分析
Pydantic AI v2.44.0 是一次安全修复版本,四个问题全部经由 web_fetch_tool 或 OpenTelemetry instrumentation 触达。两个中危问题值得注意:一是本地网络访问开关下,IPv6 zone identifier 可绕过 cloud-metadata 与 private-IP 黑名单;二是 web_fetch 在事件循环上以超线性时间处理响应,单个攻击者页面即可拖住同进程内所有 agent。两个低危问题分别是域名黑名单按字面而非解析器形式比较,以及 include_content=False 时 span 仍泄露异常、错误状态、指令与输出模板。相关开关默认关闭,但一旦为抓取能力放开本地 URL 或开启 instrumentation,风险面即被打开。
两个中危项指向同一类工程缺陷:安全边界建立在字符串与开关之上,而非解析后的语义与资源预算之上。域名/IP 校验应在解析器归一化之后进行,抓取路径的 HTML 转换与字符集解码需要显式的时间或大小上限,否则单请求即可在事件循环上形成阻塞。include_content=False 的语义应被理解为「不记录内容」,但异常与指令仍属内容,脱敏范围需要重新界定。
Agent 框架的抓取与可观测性组件正在成为新的攻击面:它们同时持有网络出口与进程内执行权,一旦被滥用,影响范围从单次请求扩大到同进程的所有 agent。这类修复以补丁形式发布,说明开源 agent 生态的安全响应速度在提升,但默认关闭的高风险开关仍把配置责任转移给了使用者。
对在生产中启用 web_fetch 或 OpenTelemetry 的团队,升级到 v2.44.0 可关闭已知的绕过与阻塞路径;更重要的是把「允许本地 URL」与 instrumentation 视为需要评审的配置项,而非默认便利开关。对 agent 平台方,抓取与遥测组件的资源上限与脱敏语义应纳入上线检查清单。
可验证的下一信号:后续版本是否把域名/IP 校验改为解析后比较、是否为 web_fetch 引入明确的超时或响应大小上限,以及 include_content=False 的脱敏范围是否扩展到异常与指令字段。若这些改动出现在 changelog 或对应 GHSA 的修复说明中,可确认方向。