CVE-2025-11277CVE-2025-11277是Open Asset Import Library(Assimp)6.0.2版本中存在的堆缓冲区溢出漏洞。该漏洞位于Assimp的Q3D格式导入模块,具体存在于Q3DImporter::InternReadFile函数中,对应的源代码文件为assimp/code/AssetLib/Q3D/Q3DLoader.cpp。Assimp是一个广泛使用的开源3D模型导入库,支持多种3D文件格式的解析与转换,包括Q3D格式。攻击者可以通过构造恶意的Q3D格式文件,触发Q3DLoader在解析过程中的堆缓冲区溢出漏洞。
该漏洞的CVSS 3.1评分为5.3分,属于中等严重级别。攻击者需要具有本地低权限访问权限才能利用此漏洞,且无需用户交互。虽然漏洞的影响程度为低(机密性、完整性、可用性均为低影响),但由于漏洞利用代码已经公开披露,存在被恶意利用的风险。该漏洞已于2025年10月5日由[email protected]公开披露,相关的概念验证(PoC)代码也已发布在GitHub上。
由于Assimp被广泛应用于3D建模、游戏开发、图形渲染等多个领域,该漏洞可能影响到使用Assimp库进行3D模型导入的各类应用程序。开发者和安全研究人员应当及时关注此漏洞的修复进展,并采取相应的防护措施。
该漏洞的根因在于Assimp 6.0.2版本的Q3DLoader模块在解析Q3D格式文件时,Q3DImporter::InternReadFile函数存在堆缓冲区溢出缺陷。Q3D(Quick3D)是一种3D模型文件格式,Q3DLoader负责解析此类格式的模型数据。
在InternReadFile函数处理Q3D文件的过程中,当解析文件中的特定字段(如顶点数据、材质属性、网格结构等)时,代码未能正确验证输入数据的长度或大小与预分配缓冲区之间的匹配关系。攻击者可以精心构造一个恶意的Q3D文件,使得文件中声明的数据长度超过实际分配的堆缓冲区大小。当解析器读取这些超长数据并写入预分配的堆缓冲区时,会发生堆缓冲区溢出。
由于该漏洞是本地利用(AV:L),攻击者需要在目标系统上具有本地执行权限,并以低权限用户身份(PR:L)运行包含漏洞代码的应用程序。攻击者可以通过以下方式触发漏洞:1)将恶意Q3D文件放置在目标系统上;2)诱导用户或自动化流程使用Assimp处理该恶意文件;3)在解析过程中触发堆缓冲区溢出,可能导致程序崩溃、信息泄露或执行任意代码。
值得注意的是,该漏洞的PoC代码已经公开,攻击者可以参考PoC构造更加复杂的攻击载荷。由于无需用户交互(UI:N),增加了自动化利用的可能性。