关键信息 漏洞名称 Prototype Pollution 影响的包 uplot 影响的版本 <1.6.31 引入时间 29 Jan 2024 CVE编号 CVE-2024-21489 CWE编号 CWE-1321 发现者 Snyk 严重性 8.8 (HIGH) 漏洞描述 Prototype Pollution 是一种影响 JavaScript 的漏洞。它允许攻击者在现有 JavaScript 语言构造原型上注入属性,例如对象。JavaScript 允许所有对象属性被修改,包括它们的魔法属性,如 、 和 。攻击者可以利用这些属性来覆盖或污染 JavaScript 应用程序对象原型的基对象,通过注入其他值。受影响的属性会通过原型链继承到所有 JavaScript 对象中。这可能导致拒绝服务(通过触发 JavaScript 异常)或通过修改应用程序源代码来强制执行攻击者注入的代码路径,从而导致远程代码执行。 漏洞类型 Unsafe Object recursive merge Property definition by path 影响的环境 Application server Web server Web browser 预防措施 1. 使用 冻结原型。 2. 验证 JSON 输入。 3. 避免使用不安全的递归合并函数。 4. 考虑使用没有原型的对象(例如, ),打破原型链并防止污染。 5. 将 作为最佳实践而不是 。 参考资源 GitHub Commit Vulnerable Code CVSS评分 Snyk: 8.8 (HIGH) 其他信息 Snyk Learn 提供关于 Prototype Pollution 漏洞的互动课程。 Snyk ID: SNYK-JS-UPLOT-6209224 Published: 30 Sep 2024 Disclosed: 29 Jan 2024 Credit: Tariq Hawis