CVE-2026-27891FacturaScripts 2026及以下版本存在严重安全漏洞。该漏洞源于Plugins::add()函数未能正确验证ZIP归档内的文件路径。攻击者可利用Zip Slip技术,构造包含路径遍历序列的恶意ZIP文件。该文件能绕过系统的根目录检查机制,导致任意文件写入,进而覆盖关键PHP文件,最终实现远程代码执行(RCE)。
该漏洞位于FacturaScripts的Plugins.php文件中的Plugins::add()函数。虽然testZipFile函数尝试验证ZIP归档仅包含一个根文件夹,但其验证逻辑存在缺陷。它使用explode函数分割路径并检查count($folders) != 1,但未对文件路径中的特殊字符(如../)进行清洗或验证。攻击者可以将恶意文件命名为“ValidPluginName/../../shell.php”。在验证阶段,explode函数将“ValidPluginName”识别为根文件夹,满足检查条件。然而,在解压阶段,路径中的“../../”序列会触发目录遍历,导致文件被解压到Web服务器有权限的任意位置(如网站根目录)。通过覆盖现有的PHP文件,攻击者可以在服务器上执行任意代码。