CVE-2026-32304Locutus是一个将其他编程语言的标准库移植到JavaScript的教育性项目。2026年3月13日,安全研究人员发现Locutus在3.0.14之前的版本中存在严重的远程代码执行漏洞。该漏洞源于create_function(args, code)函数将两个参数直接传递给JavaScript的Function构造函数,完全没有任何输入消毒处理。攻击者可以通过构造恶意的args和code参数,在受害者的浏览器或Node.js环境中执行任意JavaScript代码。由于该漏洞的CVSS评分高达9.8,属于极其严重的危急漏洞,攻击复杂度低且无需任何认证或用户交互即可利用。此漏洞影响v3.x分支,与之前披露的CVE-2026-29091(CVE-2026-29091涉及v2.x的call_user_func_array使用eval())属于同一项目的不同漏洞点。官方已在3.0.14版本中修复了此安全问题。
该漏洞的核心问题在于create_function函数的实现方式。在Locutus的v3.x分支中,create_function函数接收两个参数:args(函数参数列表)和code(函数体代码)。问题代码直接将这两个参数拼接后传递给JavaScript的new Function()构造函数。例如,当用户调用create_function('args', 'code')时,代码内部可能执行类似new Function(args, code)的操作。由于没有任何输入验证或过滤,攻击者可以在code参数中注入任意JavaScript代码。不同于eval()的直接执行,new Function()创建的是一个函数对象,但如果配合适当的调用(如立即执行),同样可以导致代码执行。攻击者可以利用此漏洞执行系统命令、窃取敏感数据、修改应用逻辑或进行进一步的内网渗透。由于该漏洞无需认证且可通过网络利用,对所有使用受影响版本Locutus的应用构成严重威胁。