Time-of-check time-of-use race condition in Juniper Junos OS Evolved
Key facts
- Attack vector
- Adjacent network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-770.
Summary
An Allocation of Resources Without Limits or Throttling weakness in the memory management of the Packet Forwarding Engine (PFE) on Juniper Networks Junos OS Evolved PTX10003 Series devices allows an adjacently located attacker who has established certain preconditions and knowledge of the environment to send certain specific genuine packets to begin a Time-of-check Time-of-use (TOCTOU) Race Condition attack which will cause a memory leak to begin. Once this condition begins, and as long as the attacker is able to sustain the offending traffic, a Distributed Denial of Service (DDoS) event occurs. As a DDoS event, the offending packets sent by the attacker will continue to flow from one device to another as long as they are received and processed by any devices, ultimately causing a cascading outage to any vulnerable devices. Devices not vulnerable to the memory leak will process and forward the offending packet(s) to neighboring devices. Due to internal anti-flood security controls and mechanisms reaching their maximum limit of response in the worst-case scenario, all affected Junos OS Evolved devices will reboot in as little as 1.5 days. Reboots to restore services cannot be avoided once the memory leak begins. The device will self-recover after crashing and rebooting. Operator intervention isn't required to restart the device. This issue affects: Juniper Networks Junos OS Evolved on PTX10003: All versions prior to 20.4R3-S4-EVO; 21.3 versions prior to 21.3R3-S1-EVO; 21.4 versions prior to 21.4R2-S2-EVO, 21.4R3-EVO; 22.1 versions prior to 22.1R1-S2-EVO, 22.1R2-EVO; 22.2 versions prior to 22.2R2-EVO. To check memory, customers may VTY to the PFE first then execute the following show statement: show jexpr jtm ingress-main-memory chip 255 | no-more Alternatively one may execute from the RE CLI: request pfe execute target fpc0 command "show jexpr jtm ingress-main-memory chip 255 | no-more" Iteration 1: Example output: Mem type: NH, alloc type: JTM 136776 bytes used (max 138216 bytes used) 911568 bytes available (909312 bytes from free pages) Iteration 2: Example output: Mem type: NH, alloc type: JTM 137288 bytes used (max 138216 bytes used) 911056 bytes available (909312 bytes from free pages) The same can be seen in the CLI below, assuming the scale does not change: show npu memory info Example output: FPC0:NPU16 mem-util-jnh-nh-size 2097152 FPC0:NPU16 mem-util-jnh-nh-allocated 135272 FPC0:NPU16 mem-util-jnh-nh-utilization 6
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Juniper | Junos OS Evolved | before 20.4R3-S4-EVO; 21.3 to before 21.3R3-S1-EVO; 21.4 to before 21.4R2-S2-EVO, 21.4R3-EVO; 22.1 to before 22.1R1-S2-EVO, 22.1R2-EVO; 22.2 to before 22.2R2-EVO | 20.4R3-S4-EVO, 21.3R3-S1-EVO, 21.4R2-S2-EVO, 21.4R3-EVO, 22.1R1-S2-EVO, 22.1R2-EVO, 22.2R2-EVO | Patch available | CNA |
- Junos OS Evolved VendorJuniper Affected before 20.4R3-S4-EVO; 21.3 to before 21.3R3-S1-EVO; 21.4 to before 21.4R2-S2-EVO, 21.4R3-EVO; 22.1 to before 22.1R1-S2-EVO, 22.1R2-EVO; 22.2 to before 22.2R2-EVO Fixed in 20.4R3-S4-EVO, 21.3R3-S1-EVO, 21.4R2-S2-EVO, 21.4R3-EVO, 22.1R1-S2-EVO, 22.1R2-EVO, 22.2R2-EVO Patch available CNA
CPE configurations NVD · 31
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:juniper:junos_os_evolved:*:*:*:*:*:*:*:* | before 20.4 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:-:*:*:*:*:*:* | 20.4 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r1:*:*:*:*:*:* | 20.4 r1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r1-s1:*:*:*:*:*:* | 20.4 r1-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r1-s2:*:*:*:*:*:* | 20.4 r1-s2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r2:*:*:*:*:*:* | 20.4 r2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r2-s1:*:*:*:*:*:* | 20.4 r2-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r2-s2:*:*:*:*:*:* | 20.4 r2-s2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r2-s3:*:*:*:*:*:* | 20.4 r2-s3 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r3:*:*:*:*:*:* | 20.4 r3 | Vulnerable | Juniper |
- cpe:2.3:o:juniper:junos_os_evolved:*:*:*:*:*:*:*:* Versions before 20.4 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:-:*:*:*:*:*:* Versions 20.4 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r1:*:*:*:*:*:* Versions 20.4 r1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r1-s1:*:*:*:*:*:* Versions 20.4 r1-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r1-s2:*:*:*:*:*:* Versions 20.4 r1-s2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r2:*:*:*:*:*:* Versions 20.4 r2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r2-s1:*:*:*:*:*:* Versions 20.4 r2-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r2-s2:*:*:*:*:*:* Versions 20.4 r2-s2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r2-s3:*:*:*:*:*:* Versions 20.4 r2-s3 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r3:*:*:*:*:*:* Versions 20.4 r3 Vulnerable ·Juniper
Show 21 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r3-s1:*:*:*:*:*:* | 20.4 r3-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r3-s2:*:*:*:*:*:* | 20.4 r3-s2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:20.4:r3-s3:*:*:*:*:*:* | 20.4 r3-s3 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:-:*:*:*:*:*:* | 21.3 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:r1:*:*:*:*:*:* | 21.3 r1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:r1-s1:*:*:*:*:*:* | 21.3 r1-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:r2:*:*:*:*:*:* | 21.3 r2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:r2-s1:*:*:*:*:*:* | 21.3 r2-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:r2-s2:*:*:*:*:*:* | 21.3 r2-s2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.3:r3:*:*:*:*:*:* | 21.3 r3 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.4:-:*:*:*:*:*:* | 21.4 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.4:r1:*:*:*:*:*:* | 21.4 r1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.4:r1-s1:*:*:*:*:*:* | 21.4 r1-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.4:r1-s2:*:*:*:*:*:* | 21.4 r1-s2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.4:r2:*:*:*:*:*:* | 21.4 r2 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:21.4:r2-s1:*:*:*:*:*:* | 21.4 r2-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:22.1:r1:*:*:*:*:*:* | 22.1 r1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:22.1:r1-s1:*:*:*:*:*:* | 22.1 r1-s1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:22.2:r1:*:*:*:*:*:* | 22.2 r1 | Vulnerable | Juniper |
| cpe:2.3:o:juniper:junos_os_evolved:22.2:r1-s1:*:*:*:*:*:* | 22.2 r1-s1 | Vulnerable | Juniper |
| cpe:2.3:h:juniper:ptx10003:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Juniper |
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r3-s1:*:*:*:*:*:* Versions 20.4 r3-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r3-s2:*:*:*:*:*:* Versions 20.4 r3-s2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:20.4:r3-s3:*:*:*:*:*:* Versions 20.4 r3-s3 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:-:*:*:*:*:*:* Versions 21.3 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:r1:*:*:*:*:*:* Versions 21.3 r1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:r1-s1:*:*:*:*:*:* Versions 21.3 r1-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:r2:*:*:*:*:*:* Versions 21.3 r2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:r2-s1:*:*:*:*:*:* Versions 21.3 r2-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:r2-s2:*:*:*:*:*:* Versions 21.3 r2-s2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.3:r3:*:*:*:*:*:* Versions 21.3 r3 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.4:-:*:*:*:*:*:* Versions 21.4 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.4:r1:*:*:*:*:*:* Versions 21.4 r1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.4:r1-s1:*:*:*:*:*:* Versions 21.4 r1-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.4:r1-s2:*:*:*:*:*:* Versions 21.4 r1-s2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.4:r2:*:*:*:*:*:* Versions 21.4 r2 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:21.4:r2-s1:*:*:*:*:*:* Versions 21.4 r2-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:22.1:r1:*:*:*:*:*:* Versions 22.1 r1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:22.1:r1-s1:*:*:*:*:*:* Versions 22.1 r1-s1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:22.2:r1:*:*:*:*:*:* Versions 22.2 r1 Vulnerable ·Juniper
- cpe:2.3:o:juniper:junos_os_evolved:22.2:r1-s1:*:*:*:*:*:* Versions 22.2 r1-s1 Vulnerable ·Juniper
- cpe:2.3:h:juniper:ptx10003:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Juniper
Remediation
- Fix · CNA Junos OS Evolved (Juniper Networks) Fixed in 20.4R3-S4-EVO, 21.3R3-S1-EVO, 21.4R2-S2-EVO, 21.4R3-EVO, 22.1R1-S2-EVO, 22.1R2-EVO, 22.2R2-EVO
Timeline
- 2026-10-02 Threatist record created from CVE-2023-22397
- 2026-10-03 Alias added: GHSA-63q5-87g5-fg36
References
Advisory 1
More Juniper Junos Os Evolved vulnerabilities
- TI-2026-17602 Junos OS Evolved: PTX Series: A vulnerability allows a unauthenticated, network-based attacker to execute code as root CVSS 4.0CRITICAL 9.3
- TI-2026-17601 Junos OS and Junos OS Evolved: Configuration of a specific SSH option results in mgd crash CVSS 4.0MEDIUM 6.7
- TI-2023-04136 Improper input validation in Juniper Junos OS CVSS 3.1HIGH 7.5
- TI-2026-74215 Stack-based buffer overflow in Junos OS rpd triggered by BGP peers CVSS 4.0CRITICAL 9.3
- TI-2026-74211 Authentication bypass in Juniper J-Web allows pre-auth CGI execution CVSS 4.0CRITICAL 9.3
- TI-2021-00146 Junos OS and Junos OS Evolved: Upon receipt of a specific BGP FlowSpec message network traffic may be disrupted. CVSS 3.1CRITICAL 10.0
Sources
- CVE-2023-22397 · CVE Program
- CVE-2023-22397 · NVD
- FIRST EPSS
- GHSA-63q5-87g5-fg36 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences