CVE-2026-4800
严重已发布
lodash 容易受到通过 _.template 导入键名引发的代码注入漏洞影响
- 已发布
- 2026年3月31日
- 已更新
- 2026年10月15日
- 分配 CNA
- openjs
- 观察到的证据
- 2026年8月25日
初级CVSS
9.8/ 10严重
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H2.6%
低 · 未来 30 天
- 百分位
- 85.3%
- 型号日期
- 2026年10月23日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
CVE-2021-23337 的修复为 _.template 中的 variable 选项添加了验证,但未对 options.imports 的键名应用相同的验证,而这两条路径都会流入同一个 Function() 构造函数接收点。当应用程序将不受信任的输入作为 options.imports 的键名传入时,攻击者可以注入默认参数表达式,从而在模板编译时执行任意代码。此外,_.template 使用 assignInWith 合并 imports,该方法通过 for..in 枚举继承属性,因此如果 Object.prototype 已被其他途径污染,被污染的键会被复制到 imports 对象中并传递给 Function()。该问题已在 4.18.1 中针对 lodash、lodash-es、lodash-amd 和 lodash.template 修复。作为变通方案,请勿将不受信任的输入作为 options.imports 中的键名传入;仅使用由开发者控制的静态键名。
来源
概念验证,演示如何通过原型污染在 lodash 模板中实现远程代码执行,并详细分析攻击流程与利用技术。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。