CVE-2026-33532
yaml 容易受到通过深度嵌套的 YAML 集合引发的堆栈溢出漏洞的影响
- 已发布
- 2026年3月26日
- 已更新
- 2026年3月30日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月25日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L低 · 未来 30 天
- 百分位
- 39.7%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
`yaml` 是一个用于 JavaScript 的 YAML 解析器和序列化器。使用 1.x 分支中早于 1.10.3 的版本或 2.x 分支中早于 2.8.3 的版本来解析 YAML 文档,可能会因堆栈溢出而抛出 RangeError。节点解析/组合阶段使用了没有深度限制的递归函数调用。攻击者若能提供用于解析的 YAML,即可通过一个小型载荷(约 2–10 KB)触发 `RangeError: Maximum call stack size exceeded`。该 `RangeError` 并非 `YAMLParseError`,因此仅捕获 YAML 特定错误的应用程序会遇到意外的异常类型。根据宿主应用程序的异常处理方式,这可能导致请求失败或终止 Node.js 进程。流式序列允许以极少的字节实现深层嵌套(每层 2 字节:一个 `[` 和一个 `]`)。在默认的 Node.js 堆栈上,约 1,000–5,000 层的嵌套(2–10 KB 输入)即可耗尽调用堆栈。确切阈值取决于环境(Node.js 版本、堆栈大小、调用时的调用堆栈深度)。注意:该库的 `Parser`(CST 阶段)采用基于堆栈的迭代方法,不受影响。只有组合/解析阶段使用实际的调用堆栈递归。所有三个公共解析 API 均受影响:`YAML.parse()`、`YAML.parseDocument()` 和 `YAML.parseAllDocuments()`。版本 1.10.3 和 2.8.3 包含补丁。
来源
1专门针对 CVE-2026-33532 的仓库,提供针对某项 Web 漏洞的分析及潜在的概念验证(PoC)。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。