CVE-2025-62521ChurchCRM是一款开源教会管理系统。在5.21.0版本之前,存在一处严重的预认证远程代码执行漏洞。该漏洞位于安装向导模块(setup/routes/setup.php)中,攻击者可以在未获得任何认证凭证的情况下,通过构造恶意请求在服务器上注入并执行任意PHP代码。漏洞的根本原因在于用户输入在配置生成过程中未经任何过滤或转义,直接拼接到PHP配置文件模板中。被注入的恶意代码会被写入Include/Config.php文件,并在每次页面加载时执行,最终导致服务器被完全攻陷。由于该漏洞影响安装初始化过程,而管理员必须完成安装才能使用系统,因此危害极大。任何可访问安装向导页面的攻击者都能在短时间内获得服务器完全控制权。
该漏洞属于经典的配置注入型远程代码执行。漏洞点位于ChurchCRM的安装向导处理逻辑中,具体为setup/routes/setup.php文件。当管理员首次安装ChurchCRM时,需要填写包括数据库配置、管理员账户等信息在内的表单。问题在于,程序直接将用户提交的表单参数值拼接到PHP配置模板中,生成Include/Config.php文件。由于没有任何输入验证机制,攻击者可以在任意表单字段中注入PHP代码。例如,在数据库主机名字段中填入<?php phpinfo(); ?>,这段代码就会被写入配置文件。当Web应用加载时,该文件会被包含执行,从而触发注入的代码。攻击者通常会注入webshell或反弹shell命令来建立持久化连接,实现对服务器的完全控制。由于漏洞发生在安装阶段,此时系统尚未创建任何认证机制,因此任何未授权访问者都可以发起攻击。修复后的5.21.0版本增加了输入过滤和参数化处理机制,避免了用户输入直接进入配置文件。