【AI安全】Unstructured.io爆出严重漏洞:一个路径穿越导致全系统沦陷(CVE-2025–64712)

admin 2026-03-10 02:16:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档披露了AI数据处理库Unstructured.io中存在的严重路径穿越漏洞CVE-2025-64712。该漏洞源于处理Outlook邮件附件时未过滤文件名,导致攻击者可进行任意文件写入并执行远程代码。由于该库被财富1000强企业广泛使用且作为LangChain等框架的底层依赖,影响范围极广,构成供应链安全风险。建议用户立即升级至0.18.18或更高版本以修复漏洞。 综合评分: 91 文章分类: 漏洞分析,AI安全,供应链安全,漏洞预警


cover_image

【AI安全】Unstructured.io 爆出严重漏洞:一个路径穿越导致全系统沦陷(CVE-2025–64712)

幻泉之洲

2026年3月9日 10:40 北京

发现一个编号为 CVE-2025–64712 的严重路径穿越漏洞(CVSS 评分9.8),它存在于AI数据处理巨头 Unstructured.io 的核心开源库中。这个漏洞能让攻击者在运行该库的机器上任意写入文件,进而执行远程代码。《财富》1000强公司中有87%都在用这个库,影响范围巨大。

核心发现

我们揪出了一个高危漏洞,CVE编号是 CVE-2025–64712,危险程度评分为9.8(满分10分)。问题出在 Unstructured.io(其官网:https://Unstructured.io)这个软件上。你可能没听过它,但《财富》1000强企业里,有87%都在用它来处理数据,比如亚马逊、谷歌、美国银行这些大公司。

这个漏洞有多厉害?简单说,攻击者可以利用它,在运行unstructured库的电脑上,随便写文件,想写哪就写哪,想写什么内容就写什么内容。这基本上就相当于拿到了远程执行代码的钥匙,能完全控制那台机器。

从混乱到智能:理解“非结构化数据”

先说说什么是“非结构化数据”。这类信息没有固定的格式或模型,像是PDF、电子邮件、Word文档、幻灯片、图片这些。它们很难直接存进传统的数据库里分析。

现在企业的数据里,大概80%到90%都是这种非结构化数据。AI系统没法直接读懂它们。要想让这些数据发挥作用,得先“加工”一下。

这个加工过程通常是:先从源文件中把数据“提取”出来——PDF要用OCR识别文字,音频要转成文字。然后,把提取出的文本切成小块(这叫“分块”),再转化成AI能理解的格式(比如向量)。最后,把这些小块存进一个能快速搜索的数据库(向量数据库)。这样,当你向AI助手提问时,它就能迅速从你的文档里找到最相关的内容,给你一个靠谱的答案。

Unstructured.io 是做什么的?

Unstructured.io 这家公司干的就是这活儿:帮企业把乱七八糟的非结构化数据,整理成干净、有结构的信息,喂给AI系统。

他们提供两套方案,既有开源的,也有付费托管的。核心产品是一个开源库(GitHub地址:https://github.com/Unstructured-IO/unstructured),里面提供了处理文档的各种组件。他们还有SaaS API服务,你可以选择共享云主机、专属实例或部署到自己的VPC里。

另外,他们还推出了一个企业级平台,提供无代码界面。你可以在上面连接数据源(比如S3、Google Drive、OneDrive、Salesforce),让平台自动处理文档,然后把规整好的数据送到你指定的地方(支持一大堆服务)。

漏洞详情:一个经典的路径穿越

这个漏洞是个很典型的“路径穿越”bug,最终会导致任意文件写入。说白了,攻击者能在运行unstructured库的机器文件系统上,随意写文件。

这类漏洞的后果非常严重,因为任意文件写入几乎总能导致代码执行。举个例子,攻击者可以把恶意代码塞进开机启动脚本(比如init.d),创建定时任务(cron job)来维持访问权限,覆盖SSH的authorized_keys文件来开后门,从而完全控制机器。或者,根据具体的Web服务器和编程语言(比如PHP、JSP),上传一个网页木马(webshell)进行远程控制。

支持的众多文件类型中,暗藏杀机

刚才说了,unstructured库是企业AI创新的ETL(提取、转换、加载)管道。它接收一个文件作为输入,提取文本内容,分割成块,通过一个嵌入模型处理,最后存进向量数据库。

这个库支持的文件类型非常多。

其中一种支持的类型是 .msg 文件。这是微软Outlook的电子邮件文件,里面存着单封邮件,包括正文、附件、发件人/收件人信息和元数据。

.msg文件处理过程的技术细节

unstructured库里负责处理Outlook .msg文件的函数,叫做 partition_msg

partition_msg 函数会调用 MsgPartitioner.iter_message_elements,这个函数负责把邮件分解成不同的元素。

从代码看,这个函数会先提取邮件正文元素(调用 _iter_message_body_elements)的文本,比如邮件内容本身、发件人、收件人。根据邮件格式是HTML还是纯文本,它会分别调用 partition_html 或 partition_text 函数。

接着,对于带附件的邮件,函数会尝试通过调用 AttachmentPartitioner.iter_elements 从每个附件里提取文本。

我们来拆解一下这个函数。首先,它把附件存到一个临时目录里,方便后续处理。

第二部分才是从附件里提取文本。因为函数一开始并不知道附件的类型,所以它调用 unstructured.partition.auto.partition() 来动态判断。

这个函数会根据文件扩展名、内容类型或文件头信息来确定文件类型,同时从附件里提取文本。

那么,漏洞到底藏在哪呢?给你点提示:当函数把附件存到临时目录时,它用了下面这样的代码。

函数创建了一个临时文件路径,然后把附件内容直接写进去。问题就出在这个路径是怎么拼出来的。

你看,它只是简单地把临时目录路径(比如 /tmp/)和 self._attachment_file_name 拼在了一起。

那么,self._attachment_file_name 的值到底是什么?

看函数顶部的注释就知道了,self._attachment_file_name 的值是“附件文件的原始名称”。

这意味着什么?如果附件的原始文件名是类似 ../../root/.ssh/authorized_keys 这样的东西,那么临时路径就会变成 /tmp/../../root/.ssh/authorized_keys

结果就是,当执行写操作时,我们就能用我们完全控制的附件内容,覆盖掉系统里真正的 authorized_keys 文件。这样一来,就实现了任意文件写入。

供应链的噩梦:影响范围难以估量

Unstructured 是AI生态系统中部署最广的库之一,月下载量超过400万次。像 OpenWebUI 这样的主流开源应用,就把它作为默认的ETL管道来用。87%的《财富》1000强公司都依赖它,无论是在内部环境还是生产系统。

但事情还没完。像 LlamaIndex 和 LangChain 这样流行的框架,其实是对unstructured的封装。它们暴露的API函数,底层调用的就是unstructured。

这就形成了一张巨大且几乎无法追踪的依赖网。一个unstructured的漏洞,影响的不仅仅是它的直接用户,还会像涟漪一样扩散到无数下游的库和应用(例如,unstructured → LangChain → 某个库_x → …)。

由于这些嵌套依赖太复杂,我们很难准确测量这个漏洞的完整爆炸半径。这是一个供应链问题,实际影响的系统数量,很可能远超我们轻易能识别出来的。

给你个参考:根据GitHub的数据,直接使用unstructured库的文件大约有1万个,而使用 langchain_community.document_loaders(它依赖unstructured)的文件大约有10万个。

为什么你需要重视?

Unstructured库在企业中部署得非常广泛,既作为托管服务,也作为无数应用的直接依赖项。它已经成为文档解析和文本提取的事实标准。你在Azure、AWS和GCP的文档、教程和示例架构里,都能看到它的身影。

如果你的企业应用里存在这个漏洞,攻击者就能完全接管运行该库的服务器实例。后果可能很严重:敏感客户数据被窃取、API密钥和凭证被盗、攻击者在你整个基础设施内部横向移动,等等。

你应该怎么做?

确保在你所有的应用和工作负载中,将unstructured库升级到0.18.18版本(发布页面:https://github.com/Unstructured-IO/unstructured/releases/tag/0.18.18)或更新版本。

负责任的披露时间线

  • 2025年10月29日:向Unstructured.io报告漏洞。
  • 2025年11月6日:Unstructured.io确认收到报告。
  • 2025年11月7日:Unstructured.io发布修复版本(0.18.18)。
  • 2025年12月1日:研究人员询问漏洞报告公开状态。
  • 2025年12月1日:Unstructured.io团队确认修复已部署至SaaS;CVE已分配但未公开,需等待本地部署的大企业客户更新后再公开披露。
  • 2025年12月29日:研究人员再次询问公开状态。
  • 2025年12月29日:Unstructured.io团队回复,CVE发布延迟,需等待大企业客户完成本地升级。
  • 2026年2月1日:研究人员通知团队,鉴于已过去95天且担忧非企业用户仍面临风险,计划于2月8日公开。
  • 2026年2月3日:Unstructured.io公布了该漏洞的CVE详情:CVE-2025–64712。
  • 2026年2月12日:Cyera发布此博文。


参考资料

[1] https://www.cyera.com/research-labs/inside-destructured—critical-vulnerability-in-unstructured-io-cve-2025-64712


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:幻泉之洲 《【AI安全】Unstructured.io 爆出严重漏洞:一个路径穿越导致全系统沦陷(CVE-2025–64712)》

评论:0   参与:  0