文章总结: Node.js二进制解析器库存在CVE-2026-1245代码注入漏洞。该库利用Function构造函数动态生成代码,但因未清理用户提供的字段名等输入,允许攻击者在动态构建解析器时执行任意JS代码,造成RCE风险。仅使用静态解析器的应用不受影响。建议立即升级至2.3.0或更高版本,并避免将不受信任数据传递给解析器字段名。 综合评分: 91 文章分类: 漏洞分析,漏洞预警,WEB安全,代码审计
CVE-2026-1245:Node.js 二进制解析器存在代码注入漏洞
sec随谈 sec随谈
sec随谈
2026年1月22日 08:45 北京
使用流行的 Node.js 二进制解析器库的开发者被敦促立即更新其依赖项,因为该库存在一个危险的代码注入漏洞。该漏洞编号为 CVE-2026-1245,如果使用该库动态处理不受信任的输入,攻击者可以利用该漏洞在服务器上执行任意 JavaScript 代码。
该库是许多开发人员的必备工具,旨在以简单且声明式的方式编写“高效的二进制解析器”。然而,使其高效的机制——动态代码生成——却恰恰是它的致命弱点。
该漏洞源于该库底层构建解析器的方式。根据漏洞说明,“binary-parser(版本低于 2.3.0)使用 Function 构造函数在运行时动态生成 JavaScript 代码”。
虽然这种方法在性能方面效果显著,但需要严格的规范。报告指出,“某些用户提供的值——特别是解析器字段名称和编码参数——未经验证或清理就被直接整合到生成的代码中”。
这一疏忽为攻击者开辟了一条直接途径。如果开发者使用外部输入构建解析器(例如,允许用户定义要上传的文件的结构),“未经清理的值可能会改变生成的代码,从而导致攻击者控制的 JavaScript 代码得以执行”。
漏洞利用的后果非常严重。由于注入的代码在应用程序上下文中运行,攻击者“可能能够以Node.js进程的权限执行任意JavaScript代码”。
潜在影响范围很广。成功利用该漏洞“可能允许访问本地数据、篡改应用程序逻辑或执行系统命令,具体取决于部署环境”。
并非所有实现都存在漏洞。该安全公告明确指出,“仅使用静态硬编码解析器定义的应用程序不受影响”。风险仅限于使用来自不可信来源的数据动态构建解析器定义的情况。
该漏洞由安全研究员 Maor Caplan发现,并已由库维护者 Keichi Takahashi 修复。
建议用户“升级到2.3.0或更高版本”,该版本包含输入验证功能并针对不安全代码生成进行了缓解。此外,作为最佳实践,建议开发人员“避免将不受信任或用户控制的值传递给解析器字段名或编码参数”。
参考链接:
https://kb.cert.org/vuls/id/102648
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:sec随谈 sec随谈 sec随谈《CVE-2026-1245:Node.js 二进制解析器存在代码注入漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论