CVE-2025-21594
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedAn Improper Check for Unusual or Exceptional Conditions vulnerability in the pfe (packet forwarding engine) of Juniper Networks Junos OS on MX Series causes a port within a pool to be blocked leading to Denial of Service (DoS). In a DS-Lite (Dual-Stack Lite) and NAT (Network Address Translation) scenario, when crafted IPv6 traffic is received and prefix-length is set to 56, the ports assigned to the user will not be freed. Eventually, users cannot establish new connections. Affected FPC/PIC need to be manually restarted to recover. Following is the command to identify the issue: user@host> show services nat source port-block Host_IP External_IP Port_Block Ports_Used/ Block_State/ Range Ports_Total Left_Time(s) 2001:: x.x.x.x 58880-59391 256/256*1 Active/- >>>>>>>>port still usedThis issue affects Junos OS on MX Series: * from 21.2 before 21.2R3-S8, * from 21.4 before 21.4R3-S7, * from 22.1 before 22.1R3-S6, * from 22.2 before 22.2R3-S4, * from 22.3 before 22.3R3-S3, * from 22.4 before 22.4R3-S2, * from 23.2 before 23.2R2-S1, * from 23.4 before 23.4R1-S2, 23.4R2. This issue does not affect versions before 20.2R1.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceA port allocation leak in Junos OS MX Series NAT functionality causes ports to never be released back to the pool when specific IPv6 traffic patterns (DS-Lite with prefix-length 56) are processed. This exhausts the available port block pool, preventing new NAT translations and causing DoS. The issue stems from improper handling of exceptional conditions in the packet forwarding engine.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data= 21.2= 21.4= 22.1= 22.2= 22.3= 22.4= 23.2= 23.4CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- None
- Integrity
- None
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify device modelRun 'show chassis hardware' or check the device model at the top of 'show version' output to confirm it is an MX Series routerAffected if Device is not an MX Series (the vulnerability only affects MX Series)
-
Check Junos OS versionRun 'show version' and note the exact Junos OS version (for example, 22.3R3-S2)Affected if Version matches or falls within the affected range: 21.2, 21.4, 22.1, 22.2, 22.3, 22.4, 23.2, or 23.4 (any build within these release trains)
-
Verify NAT DS-Lite configurationRun 'show configuration nat' and look for DS-Lite configuration with prefix-length 56 under the NAT rule setsAffected if NAT is configured with DS-Lite and prefix-length 56 specifically (this is the traffic pattern that triggers the leak)
-
Inspect NAT port pool statusRun 'show nat pool usage' or 'show services nat pool' to examine available ports in the NAT poolAffected if Port pool shows high utilization or exhaustion with few or zero available ports despite expected traffic volume
-
Check FPC/PIC component healthRun 'show chassis fpc' or 'show pic' status to identify any FPC/PIC components under stress or restarting frequentlyAffected if FPC/PIC components show abnormal restart cycles or resource exhaustion indicating prolonged port leak
Device is affected if it is an MX Series running any version in the 21.2-23.4 range with DS-Lite NAT configured using prefix-length 56, and NAT port pool exhaustion is observed.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpgrade Junos OS to the fixed version for your release train (21.2R3-S8, 21.4R3-S7, 22.1R3-S6, 22.2R3-S4, 22.3R3-S3, 22.4R3-S2, 23.2R2-S1, or 23.4R1-S2/23.4R2). As a temporary workaround, manually restart affected FPC/PIC components to clear stuck port allocations.
23.4R2 (or latest available fixed release for your branch)
- 1. Identify current Junos OS version on MX Series device using 'show version'
- 2. Plan maintenance window as FPC/PIC restart will be needed after upgrade
- 3. Download the appropriate fixed Junos OS release based on current version: for 21.2.x upgrade to 21.2R3-S8 or later, for 21.4.x upgrade to 21.4R3-S7 or later, for 22.1.x upgrade to 22.1R3-S6 or later, for 22.2.x upgrade to 22.2R3-S4 or later, for 22.3.x upgrade to 22.3R3-S3 or later, for 22.4.x upgrade to 22.4R3-S2 or later, for 23.2.x upgrade to 23.2R2-S1 or later, for 23.4.x upgrade to 23.4R2
- 4. Upload new Junos OS image to device
- 5. Install the new Junos OS version using 'request system software add <package>'
- 6. Reboot the device using 'request system reboot'
- 7. After reboot, verify new version is running with 'show version'
- 8. If ports were previously exhausted, manually restart affected FPC/PIC using 'request chassis fpc restart slot <slot-number>' to clear blocked port state
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation8.0 h
- Testing6.0 h
- Review / QA4.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $6,176.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2025-21594 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2025-21594 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data