CVE-2026-34216CtrlPanel是面向托管商的开源计费软件。在1.1.1及更早版本中,系统存在严重的远程代码执行漏洞。其管理员设置更新端点直接从用户请求中获取类名,并用于实例化对象和调用静态方法,缺乏必要的安全白名单验证。拥有管理员权限的攻击者可利用Composer自动加载机制实例化任意类,通过触发构造函数或魔术方法执行恶意代码。官方已在1.2.0版本中修复此问题。
该漏洞的核心在于CtrlPanel处理管理员设置更新请求时的逻辑缺陷。当调用update()方法时,系统直接从HTTP请求中读取settings_class参数,并将其传递给new $settings_class()进行对象实例化以及$settings_class::getValidations()进行静态方法调用。关键问题在于系统未对输入的类名进行白名单验证。由于PHP运行时会利用Composer自动加载器解析类名,这意味着应用程序及其依赖库中的任何可自动加载的类都可以被实例化。攻击者可以指定一个已知的具有危险魔术方法(如__construct、__wakeup、__toString)的类,通过精心构造的数据触发这些方法,形成PHP对象注入(POP)链,最终在服务器端执行任意系统命令。此攻击需要高权限用户身份,但一旦成功,将完全控制服务器。