CVE-2021-47939Evolution CMS 3.1.6版本中存在严重的远程代码执行漏洞。该漏洞允许具有模块创建权限的经过身份验证的用户,通过向模块参数中注入恶意PHP代码来执行任意系统命令。攻击者可以构造特制的POST请求发送至/manager/index.php接口,利用'post'参数携带恶意Payload,从而创建包含后门代码的恶意模块。一旦该模块被调用或访问,服务器将执行攻击者指定的系统命令,导致服务器被完全控制。此漏洞由于对用户输入缺乏严格的过滤和验证,使得恶意代码能够被写入系统并执行,对系统的机密性、完整性和可用性造成严重影响。
该漏洞的根本原因在于Evolution CMS在处理模块创建功能时,未能对用户提交的参数(特别是'post'参数)进行充分的安全过滤和消毒。当具有管理员或拥有模块创建权限的用户登录系统后,可以通过后台管理界面或直接向/manager/index.php发送POST请求来创建新模块。在构建请求时,攻击者将恶意的PHP代码(如system函数)注入到模块的相关参数字段中。由于系统直接将用户输入的内容保存为模块配置代码的一部分,并未进行代码层面的转义或隔离,导致这些数据在后续模块加载或调用时被Web服务器作为PHP代码动态解析执行。攻击者利用这一逻辑缺陷,可以绕过常规的权限检查,在服务器上下文中执行任意操作系统命令。利用过程需要低权限的认证账户,但一旦利用成功,攻击者即可提升权限并控制整个Web服务器环境。