eval 注入点 → root RCE(VESTACP-2026-001)针对原始 Vesta 控制面板(VestaCP)≤ 0.9.8-26 的安全公告
(github.com/serghey-rodin/vesta,vestacp.com —— 自 2019 年 9 月起
不再维护):func/main.sh 中的共享配置解析器在以 root 身份运行的
v-* 脚本内使用 eval 对用户可控的 KEY='value' 行进行求值 ——
已通过认证的面板用户可借此提升至托管节点上的完整 root 权限。
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)这与维护中的分支 HestiaCP 于 2026 年 7 月修复的注入点类别相同 ——
CVE-2026-84981、
CVE-2026-84984、
CVE-2026-84979 ——
但从未针对其前身原始 VestaCP 披露或修复。这也与 VestaCP 早前的 CVE
(CVE-2019-9859 PHP 层、CVE-2021-30462/30463 本地提权链、CVE-2022-3967
sed 注入)不同;参见公告的先前工作章节。发布此公告是为了那些仍在
生产环境中运行 VestaCP 的安装群体(广泛预装于 VPS 模板中)。
advisory/VESTACP-2026-001.md —— 完整
公告:受影响的注入点、利用路径、影响、先前工作、范围、
缓解措施、时间线。poc/poc-eval-sink.sh —— 自包含的概念验证:
在构造的配置行上模拟存在漏洞的 eval 解析,并
展示加固后的解析器如何将其化解。在 mktemp 沙箱中运行;
无需安装 VestaCP。mitigation/non-eval-parser.sh —— 可直接替换的
parse_object_kv_list 以及针对每个 eval 位置的移植方法。bash poc/poc-eval-sink.sh
预期结果:存在漏洞的解析会创建一个标记文件(注入被执行); 加固后的解析则使其保持无效(值保持字面量)。
Bryan Ramirez — SYSDOP LLC · [email protected]
于 2026 年 8 月在对生产托管基础设施进行防御性安全审计时 发现。于 2026 年 10 月披露。