CVE-2024-4068是NPM包braces中存在的一个内存耗尽漏洞。由于程序未能限制其可以处理的字符数量,恶意用户可以通过发送“不平衡的花括号”作为输入,导致解析进入循环,程序开始分配堆内存而不释放,最终导致JavaScript堆限制达到上限并崩溃。该漏洞影响braces 3.0.3之前的版本。此问题已在3.0.3版本中修复。
CVE-2024-4068 在 npm 包 braces 中,由于缺乏对可处理字符数的限制,可能导致内存耗尽。恶意攻击者可以通过发送带有“不平衡的括号”的输入来利用此漏洞。这会在解析代码 (lib/parse.js) 中触发无限循环,导致持续分配内存而未释放。最终,JavaScript 堆限制被达到,导致应用程序崩溃。对于处理用户提供输入的应用程序,此漏洞尤其令人担忧,因为攻击者可以轻松创建恶意输入以导致拒绝服务或破坏系统安全。
利用此漏洞需要攻击者能够控制提供给 braces 包的输入。这可能发生在处理用户输入的 Web 应用程序中,或者在 braces 包用于解析文件模式或字符串的任何其他场景中。攻击者可以在搜索字符串、文件名或传递给包的任何其他数据中注入不平衡的括号。由于易于利用,因此此漏洞对广泛使用的应用程序而言是一个重大的问题。
Applications built with Node.js that directly or indirectly depend on the braces package, particularly those handling user-supplied input without proper validation, are at risk. This includes web applications, command-line tools, and any other Node.js-based software utilizing the braces package for string manipulation or pattern matching.
• nodejs / server:
npm list braces• nodejs / server:
npm audit• nodejs / server: Check application logs for errors related to memory allocation or heap exhaustion. • nodejs / server: Monitor process resource usage (CPU, memory) for sudden spikes indicative of memory exhaustion.
disclosure
漏洞利用状态
EPSS
0.22% (45% 百分位)
CISA SSVC
建议的解决方案是将 braces 包更新到 3.0.3 或更高版本。此版本包含一项修复,可限制解析器可以分配的内存量,从而防止无限循环和内存耗尽。如果无法立即更新,则可以通过限制传递给 braces 包的输入的最大长度来实施临时缓解措施。应进行风险评估以确定利用的可能性和对系统的潜在影响。此外,监控应用程序的内存使用情况可以帮助检测和减轻潜在攻击。
Actualice el paquete `braces` a la versión 3.0.3 o superior. Esto se puede hacer ejecutando `npm install braces@latest` o `yarn upgrade braces@latest` en su proyecto. Asegúrese de verificar que la actualización no cause conflictos con otras dependencias.
漏洞分析和关键警报直接发送到您的邮箱。
指的是包含更多开括号而不是闭括号,或相反的字符串。例如,'{[()]' 或 '()[]'。braces 包的解析器无法正确处理这些情况,从而导致无限循环。
如果您的应用程序使用低于 3.0.3 版本的 braces 包,则容易受到攻击。您可以使用终端中的 npm list braces 命令来验证包版本。
作为临时缓解措施,限制传递给 braces 包的输入的最大长度。这可以帮助防止内存耗尽,但不是完整的解决方案。
是的,有软件成分分析 (SAST) 和漏洞管理工具可以检测到您代码中的此漏洞。
此漏洞可能导致拒绝服务 (DoS),方法是耗尽应用程序的内存。在更严重的情况下,攻击者可能会在系统上执行恶意代码。
CVSS 向量