跳到正文
事件观察中

Pydantic AI web_fetch 资源耗用与无界内存漏洞

3 篇报道1 个报道来源1 天前更新

先了解这件事

AI 综述

Pydantic AI 的本地网页抓取工具 web_fetch_tool(也是 WebFetch 能力的本地回退)被披露存在多项问题。公告称,标题提取使用回溯正则匹配原始响应体,重复未闭合标签开头会让耗时随体积平方增长,该二次复杂度步骤运行在 event loop 上,可被引导抓取攻击者控制的页面,阻塞 event loop 数分钟,拖住进程内其他协程。远程内容下载路径在施加任何大小限制前会把整个 HTTP 响应体缓冲进内存,可被诱导抓取大体积 URL,耗尽进程内存并导致 worker 崩溃;FileUrl 媒体下载(ImageUrl、DocumentUrl、VideoUrl、AudioUrl)存在同样的无界缓冲问题。另有公告称,转换攻击者可控的 HTML 时会出现过高 CPU 和内存占用:嵌套块级元素会让 HTML 转 Markdown 逐层重复处理累积文本并使中间输出膨胀,响应体大小限制只约束下载字节数,返回内容限制在转换之后才生效;当前版本把转换放在工作线程中执行,仍可能消耗大量资源并拖慢同进程内其他任务,更早版本则在事件循环上执行转换。

AI 根据报道生成 · 18 小时前更新

事件进展

2 个进展
  1. 10月9日 01:16 · 1 篇报道
    Pydantic AI 远程内容下载无界内存漏洞
    GitHub 安全公告:Pydantic AI 修复 web_fetch 与 FileUrl 下载无界内存占用漏洞
  2. 10月9日 00:48 · 2 篇报道
    Pydantic AI web_fetch 存在二次复杂度阻塞事件循环漏洞
    GitHub 安全公告:Pydantic AI 修复 web_fetch 中二次复杂度标题提取导致的 event loop 阻塞漏洞

后续时间线

10月9日
  1. GitHub 安全公告精选
    Pydantic AI 本地网页抓取工具被披露嵌套 HTML 导致资源耗用过高漏洞

    GitHub 安全公告披露 Pydantic AI 本地网页抓取工具的漏洞:在转换攻击者可控的 HTML 时会出现过高的 CPU 和内存占用。嵌套块级元素会让 HTML 转 Markdown 的过程逐层重复处理累积文本,并使中间输出大幅膨胀;响应体大小限制只约束下载字节数,返回内容限制则在转换之后才生效。当前版本把转换放在工作线程中执行,仍可能消耗大量资源并拖慢同进程内的其他任务,更早版本则在事件循环上执行转换。只有当智能体抓取受影响页面时才会触发,使用模型厂商原生网页抓取的功能不受影响。缓解方式是升级到已修复的 pydantic-ai 或 pydantic-ai-slim 版本,无法升级时应避免用本地网页抓取处理攻击者可控的 HTML。

  2. GitHub 安全公告
    Pydantic AI 修复 web_fetch 与 FileUrl 下载无界内存占用漏洞

    Pydantic AI 的远程内容下载路径在施加任何大小限制前会把整个 HTTP 响应体缓冲进内存,暴露本地 web-fetch 工具(web_fetch_tool 或 WebFetch 能力的本地回退)给不可信提示词的应用,可被诱导抓取攻击者指定的大体积 URL,耗尽进程内存并导致 worker 崩溃;FileUrl 媒体下载(ImageUrl、DocumentUrl、VideoUrl、AudioUrl)存在同样的无界缓冲问题。公告称这仅是可用性问题,SSRF 防护(协议白名单、私有 IP 与云元数据拦截)不受影响,没有机密性或完整性影响。修复方案是升级到 v2 的 2.24.0 或更高版本、v1 的 1.107.2 或更高版本,补丁版本在流式下载时默认施加 50 MiB 上限,将限制传为 None 可恢复此前的无界行为。该问题在媒体下载加固的内部审查中被发现。

  3. GitHub 安全公告精选
    Pydantic AI 修复 web_fetch 中二次复杂度标题提取导致的 event loop 阻塞漏洞

    Pydantic AI 的本地网页抓取工具 web_fetch_tool(也是 WebFetch 能力的本地回退)在处理响应时存在二次复杂度步骤并运行在 event loop 上,暴露给不可信提示词的应用可被引导抓取攻击者控制的页面,阻塞 event loop 数分钟,拖住进程内其他协程。标题提取使用回溯正则匹配原始响应体,重复未闭合标签开头会让耗时随体积平方增长;HTML 转 markdown 的空白归一化、preformatted 块剥离和有序列表编号也有同样问题。HTML 转 markdown 每层嵌套递归一次,嵌套数百层会触发 RecursionError 中止运行, 响应嵌套过深同理。该问题仅影响可用性,GHSA-v2xh-2vp8-57h8 引入的 SSRF 防护和下载体积限制不受影响。该问题由 @BrianWillows 私下报告,其余问题在修复过程中发现。

相关讨论

本站还没有收集到这件事的讨论链接。

关注度走势

每天新增来源

2 天共 1 个·最多 1(10月9日)·今天 0

  • 10月9日 新增 1 个来源(1 家媒体、0 个账号)
  • 10月10日 新增 0 个来源(0 家媒体、0 个账号)

每小时关注度

当前关注度 51·可比范围峰值 55(10月9日 02:00)·近 24 小时可比范围变化 -4%

020406010月9日02:0010月9日12:0010月9日22:0010月10日08:00