CVE-2026-34795Endian Firewall 3.3.25及之前版本被发现存在一个高危命令注入漏洞。漏洞源于/cgi-bin/logs_log.cgi脚本对DATE参数的过滤机制不完善。经过身份认证的攻击者可以通过构造恶意的DATE参数值,绕过正则表达式验证,并将其传递给后端的Perl open()函数。这允许攻击者在系统上下文中执行任意操作系统命令,从而完全接管服务器。
该漏洞的核心机制在于Perl语言中open()函数的双参数调用模式。在Endian Firewall 3.3.25及更早版本的/cgi-bin/logs_log.cgi脚本中,程序接收用户输入的DATE参数,意图用于构建日志文件路径。然而,代码仅使用了不完整的正则表达式进行输入验证,未能彻底阻止Shell元字符的注入。当攻击者发送包含管道符(|)或反引号(`)的恶意Payload时,Perl的open()函数会将其解释为进程启动指令而非单纯的文件打开操作。具体而言,攻击者可以构造形如“file.txt | /bin/bash”的字符串。open()函数在处理时会尝试打开文件,若失败或根据特定上下文,会执行管道符后的命令。由于CGI脚本通常以Web服务器权限(如www-data或root)运行,攻击者借此可获得相应的系统权限,从而读取敏感文件、安装后门或进一步横向移动。CVSS向量显示攻击复杂度低,无需用户交互,进一步加剧了其危害程度。