漏洞概述 漏洞名称: Prototype Pollution 影响包: 版本: 2.1.4 严重程度: 8.8 (HIGH) CVSS评分: 8.8 发布日期: 31 Mar 2024 CVE编号: CVE-2024-21529, CVE-1321 描述: 是一个用于安全写入深对象值的工具。受影响的版本在使用 函数时存在原型污染漏洞,该漏洞允许攻击者通过内置的 属性 注入恶意对象,从而导致远程代码执行。 影响范围 环境: 应用程序服务器、Web 服务器、Web 浏览器 攻击类型: - 拒绝服务 (DoS): 攻击者可以污染 等方法,导致代码失败或服务不可用。 - 远程代码执行 (RCE): 攻击者可以污染 等方法,从而执行任意代码。 - 属性注入: 攻击者可以污染 等属性,从而提升权限。 修复方案 升级版本: 升级到 版本 3.1.4 或更高。 POC 代码 详细信息 漏洞原理: 原型污染是指攻击者能够向现有的 JavaScript 语言构造的原型(如对象)中注入属性。JavaScript 允许修改所有对象的属性,包括其魔法属性如 、 和 。攻击者通过注入其他值来覆盖或污染 的原型,这些属性会被所有 JavaScript 对象继承。 攻击方式: - 不安全对象递归合并: 攻击者可以利用递归合并函数,通过控制 属性来污染原型。 - 路径定义: 攻击者可以通过控制路径值来污染原型。 预防措施 1. 冻结原型:使用 。 2. 要求 JSON 输入的 schema 验证。 3. 避免使用不安全的递归合并函数。 4. 考虑使用没有原型的对象(例如 ),打破原型链并防止污染。 5. 最佳实践是使用 代替 。 参考链接 GitHub Commit CVSS 基础评分 攻击向量 (AV): 网络 攻击复杂度 (AC): 低 攻击要求 (AT): 无 特权要求 (PR): 无 用户交互 (UI): 无 机密性 (VC): 无 完整性 (VI): 高 可用性 (VA): 低 机密性影响 (SC): 无 完整性影响 (SI): 无 可用性影响 (SA): 无 威胁情报 社会趋势: 趋势上升 利用成熟度: 概念验证 EPSS: 0.61% (45th percentile) 其他信息 Snyk ID: SNYK-JAVA-ORGWEBJARSNPM-7981555 发布: 16 Sept 2024 披露: 31 Mar 2024 信用: Tariq Hawis 测试应用 测试你的应用 报告漏洞 报告新漏洞 发现错误? --- 总结: 该漏洞是一个原型污染漏洞,影响 包的 2.1.4 版本。攻击者可以通过注入恶意对象来污染原型,导致远程代码执行。建议升级到 3.1.4 或更高版本以修复此漏洞。