CVE-2026-42549Flight PHP微框架在3.18.1版本之前存在路径遍历漏洞。问题出在`make:controller` CLI命令,该命令在验证用户输入的控制器名称之前,就直接根据输入路径递归创建目录。尽管后续的类名验证会拒绝包含斜杠的名称,但目录创建的副作用已经发生。攻击者可利用该特性在项目根目录之外强制创建目录,影响系统完整性和可用性。
该漏洞的根本原因在于验证逻辑与文件系统操作的执行顺序不当。在Flight框架的CLI工具中,当开发者执行`make:controller`命令以生成新的控制器时,系统会立即基于用户提供的名称调用`mkdir`函数,并开启`recursive`(递归)模式。此时,用于校验类名的Nette库验证逻辑尚未介入。由于缺乏前置的输入净化,攻击者可以构造包含路径遍历字符(如`../`)的恶意控制器名称(例如`../../tmp/poc`)。尽管Nette库在随后的步骤中会检测到非法字符并抛出异常,阻止了实际的类文件写入,但目录创建的副作用已经不可逆地发生。这意味着攻击者拥有低权限本地账号时,即可在项目根目录之外的任意位置创建目录,从而可能对系统造成拒绝服务或破坏文件系统结构。官方在3.18.1版本中通过调整验证顺序修复了此问题。