平台
nodejs
组件
form-data
修复版本
2.5.5
3.0.1
4.0.1
2.5.4
CVE-2025-7783 是一个存在于 form-data 库中的安全漏洞,该漏洞源于其使用 Math.random() 函数来生成 multipart form-encoded 数据的边界值。由于 Math.random() 生成的是伪随机数,具有可预测性,攻击者如果能够观察到目标应用中 Math.random() 产生的其他值,并控制 form-data 发送的请求中的一个字段,就有可能预测出未来的随机数值,从而发起攻击。所有低于 2.5.4 版本的 form-data 库都受到影响。该漏洞已在 2.5.4 版本中得到修复。
CVE-2025-7783 漏洞源于 'form-data' 库使用 Math.random() 来生成 multipart 表单编码数据的边界 (boundary)。如果攻击者能够观察到目标应用程序中 Math.random() 生成的其他值,并且能够控制使用 'form-data' 发送的请求中的一个字段,则会产生重大的安全风险。由于 Math.random() 的值是伪随机且可预测的(详见 https://blog.securityevaluators.com/hacking-the-javascript-lottery-80cc437e3b7f),能够观察到几个连续值的攻击者可能能够预测后续请求中使用的边界。这可能允许攻击者操纵 multipart 请求,从而可能导致代码注入或数据篡改。
利用此漏洞需要深入了解应用程序的内部工作原理以及观察和操作 HTTP 请求的能力。攻击者需要能够影响 multipart 请求中的一个字段,并同时观察 Math.random() 生成的值以预测边界。利用成功的关键在于攻击者能否将 Math.random() 的观察与请求中使用的边界相关联。利用的复杂性取决于应用程序的架构和已实施的安全措施。
漏洞利用状态
EPSS
0.08% (23% 百分位)
CISA SSVC
推荐的解决方案是将 'form-data' 库更新到 2.5.4 或更高版本。此版本通过采用更安全、更不可预测的边界生成方法来解决漏洞。此外,请审查应用程序代码,以识别任何在敏感上下文中依赖 Math.random() 的情况,并考虑更强大的随机数生成替代方案,尤其是在安全至关重要的情况下。实施日志记录和监控系统可以帮助检测利用尝试。
Actualice la biblioteca form-data a la versión 2.5.4 o superior, o a una versión posterior a 3.0.3 o 4.0.3. Esto solucionará la vulnerabilidad de valores aleatorios insuficientes al elegir el límite, previniendo ataques de HTTP Parameter Pollution (HPP). Ejecute `npm install form-data@latest` o `yarn add form-data@latest` para obtener la versión más reciente.
漏洞分析和关键警报直接发送到您的邮箱。
'form-data' 是一个 JavaScript 库,用于简化创建使用 multipart/form-data 格式编码数据的 HTTP 请求,通常用于文件上传和通过 Web 表单发送复杂数据。
版本 2.5.4 修复了 CVE-2025-7783 漏洞,该漏洞允许攻击者预测 multipart/form-data 请求中使用的边界,从而可能导致请求操纵。
如果您使用的是 'form-data' 的 2.5.4 之前的版本,则您的应用程序可能容易受到攻击。请检查项目的依赖项并更新库。
是的,有其他 JavaScript 库用于处理 multipart/form-data 请求,但评估它们的安全性及其对您需求的适用性非常重要。
除了更新 'form-data' 之外,请考虑实施强大的输入验证、数据清理和安全监控,以检测和防止攻击。