CVE Vulnerabilities

CVE-2020-1653

Improper Handling of Invalid Use of Special Elements

Published: Jul 17, 2020 | Modified: Nov 21, 2024
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
5 MEDIUM
AV:N/AC:L/Au:N/C:N/I:N/A:P
RedHat/V2
RedHat/V3
Ubuntu

On Juniper Networks Junos OS devices, a stream of TCP packets sent to the Routing Engine (RE) may cause mbuf leak which can lead to Flexible PIC Concentrator (FPC) crash or the system to crash and restart (vmcore). This issue can be trigged by IPv4 or IPv6 and it is caused only by TCP packets. This issue is not related to any specific configuration and it affects Junos OS releases starting from 17.4R1. However, this issue does not affect Junos OS releases prior to 18.2R1 when Nonstop active routing (NSR) is configured [edit routing-options nonstop-routing]. The number of mbufs is platform dependent. The following command provides the number of mbufs counter that are currently in use and maximum number of mbufs that can be allocated on a platform: user@host> show system buffers 2437/3143/5580 mbufs in use (current/cache/total) Once the device runs out of mbufs, the FPC crashes or the vmcore occurs and the device might become inaccessible requiring a manual restart. This issue affects Juniper Networks Junos OS 17.4 versions prior to 17.4R2-S11, 17.4R3-S2; 18.1 versions prior to 18.1R3-S10; 18.2 versions prior to 18.2R2-S7, 18.2R3-S5; 18.2X75 versions prior to 18.2X75-D41, 18.2X75-D420.12, 18.2X75-D51, 18.2X75-D60, 18.2X75-D34; 18.3 versions prior to 18.3R2-S4, 18.3R3-S2; 18.4 versions prior to 18.4R1-S7, 18.4R2-S4, 18.4R3-S1; 19.1 versions prior to 19.1R1-S5, 19.1R2-S1, 19.1R3; 19.2 versions prior to 19.2R1-S5, 19.2R2; 19.3 versions prior to 19.3R2-S3, 19.3R3; 19.4 versions prior to 19.4R1-S2, 19.4R2. Versions of Junos OS prior to 17.4R1 are unaffected by this vulnerability.

Weakness

The product does not properly filter, remove, quote, or otherwise manage the invalid use of special elements in user-controlled input, which could cause adverse effect on its behavior and integrity.

Affected Software

Name Vendor Start Version End Version
Junos Juniper 17.4 (including) 17.4 (including)
Junos Juniper 17.4-r1 (including) 17.4-r1 (including)
Junos Juniper 17.4-r1-s1 (including) 17.4-r1-s1 (including)
Junos Juniper 17.4-r1-s2 (including) 17.4-r1-s2 (including)
Junos Juniper 17.4-r1-s4 (including) 17.4-r1-s4 (including)
Junos Juniper 17.4-r1-s5 (including) 17.4-r1-s5 (including)
Junos Juniper 17.4-r1-s6 (including) 17.4-r1-s6 (including)
Junos Juniper 17.4-r1-s7 (including) 17.4-r1-s7 (including)
Junos Juniper 17.4-r2 (including) 17.4-r2 (including)
Junos Juniper 17.4-r2-s1 (including) 17.4-r2-s1 (including)
Junos Juniper 17.4-r2-s10 (including) 17.4-r2-s10 (including)
Junos Juniper 17.4-r2-s2 (including) 17.4-r2-s2 (including)
Junos Juniper 17.4-r2-s3 (including) 17.4-r2-s3 (including)
Junos Juniper 17.4-r2-s4 (including) 17.4-r2-s4 (including)
Junos Juniper 17.4-r2-s5 (including) 17.4-r2-s5 (including)
Junos Juniper 17.4-r2-s6 (including) 17.4-r2-s6 (including)
Junos Juniper 17.4-r2-s7 (including) 17.4-r2-s7 (including)
Junos Juniper 17.4-r2-s8 (including) 17.4-r2-s8 (including)
Junos Juniper 17.4-r2-s9 (including) 17.4-r2-s9 (including)
Junos Juniper 17.4-r3 (including) 17.4-r3 (including)
Junos Juniper 17.4-r3-s1 (including) 17.4-r3-s1 (including)
Junos Juniper 18.1 (including) 18.1 (including)
Junos Juniper 18.1-r1 (including) 18.1-r1 (including)
Junos Juniper 18.1-r2 (including) 18.1-r2 (including)
Junos Juniper 18.1-r2-s1 (including) 18.1-r2-s1 (including)
Junos Juniper 18.1-r2-s2 (including) 18.1-r2-s2 (including)
Junos Juniper 18.1-r2-s4 (including) 18.1-r2-s4 (including)
Junos Juniper 18.1-r3 (including) 18.1-r3 (including)
Junos Juniper 18.1-r3-s1 (including) 18.1-r3-s1 (including)
Junos Juniper 18.1-r3-s2 (including) 18.1-r3-s2 (including)
Junos Juniper 18.1-r3-s3 (including) 18.1-r3-s3 (including)
Junos Juniper 18.1-r3-s4 (including) 18.1-r3-s4 (including)
Junos Juniper 18.1-r3-s6 (including) 18.1-r3-s6 (including)
Junos Juniper 18.1-r3-s7 (including) 18.1-r3-s7 (including)
Junos Juniper 18.1-r3-s8 (including) 18.1-r3-s8 (including)
Junos Juniper 18.1-r3-s9 (including) 18.1-r3-s9 (including)
Junos Juniper 18.2 (including) 18.2 (including)
Junos Juniper 18.2-r1 (including) 18.2-r1 (including)
Junos Juniper 18.2-r1-s3 (including) 18.2-r1-s3 (including)
Junos Juniper 18.2-r1-s4 (including) 18.2-r1-s4 (including)
Junos Juniper 18.2-r1-s5 (including) 18.2-r1-s5 (including)
Junos Juniper 18.2-r2 (including) 18.2-r2 (including)
Junos Juniper 18.2-r2-s1 (including) 18.2-r2-s1 (including)
Junos Juniper 18.2-r2-s2 (including) 18.2-r2-s2 (including)
Junos Juniper 18.2-r2-s3 (including) 18.2-r2-s3 (including)
Junos Juniper 18.2-r2-s4 (including) 18.2-r2-s4 (including)
Junos Juniper 18.2-r2-s5 (including) 18.2-r2-s5 (including)
Junos Juniper 18.2-r2-s6 (including) 18.2-r2-s6 (including)
Junos Juniper 18.2-r3 (including) 18.2-r3 (including)
Junos Juniper 18.2-r3-s1 (including) 18.2-r3-s1 (including)
Junos Juniper 18.2-r3-s2 (including) 18.2-r3-s2 (including)
Junos Juniper 18.2-r3-s3 (including) 18.2-r3-s3 (including)
Junos Juniper 18.2-r3-s4 (including) 18.2-r3-s4 (including)
Junos Juniper 18.2x75 (including) 18.2x75 (including)
Junos Juniper 18.2x75-d20 (including) 18.2x75-d20 (including)
Junos Juniper 18.2x75-d30 (including) 18.2x75-d30 (including)
Junos Juniper 18.2x75-d40 (including) 18.2x75-d40 (including)
Junos Juniper 18.3 (including) 18.3 (including)
Junos Juniper 18.3-r1 (including) 18.3-r1 (including)
Junos Juniper 18.3-r1-s1 (including) 18.3-r1-s1 (including)
Junos Juniper 18.3-r1-s2 (including) 18.3-r1-s2 (including)
Junos Juniper 18.3-r1-s3 (including) 18.3-r1-s3 (including)
Junos Juniper 18.3-r1-s5 (including) 18.3-r1-s5 (including)
Junos Juniper 18.3-r1-s6 (including) 18.3-r1-s6 (including)
Junos Juniper 18.3-r2 (including) 18.3-r2 (including)
Junos Juniper 18.3-r2-s1 (including) 18.3-r2-s1 (including)
Junos Juniper 18.3-r2-s2 (including) 18.3-r2-s2 (including)
Junos Juniper 18.3-r2-s3 (including) 18.3-r2-s3 (including)
Junos Juniper 18.3-r3 (including) 18.3-r3 (including)
Junos Juniper 18.3-r3-s1 (including) 18.3-r3-s1 (including)
Junos Juniper 18.4 (including) 18.4 (including)
Junos Juniper 18.4-r1 (including) 18.4-r1 (including)
Junos Juniper 18.4-r1-s1 (including) 18.4-r1-s1 (including)
Junos Juniper 18.4-r1-s2 (including) 18.4-r1-s2 (including)
Junos Juniper 18.4-r1-s5 (including) 18.4-r1-s5 (including)
Junos Juniper 18.4-r1-s6 (including) 18.4-r1-s6 (including)
Junos Juniper 18.4-r2 (including) 18.4-r2 (including)
Junos Juniper 18.4-r2-s1 (including) 18.4-r2-s1 (including)
Junos Juniper 18.4-r2-s2 (including) 18.4-r2-s2 (including)
Junos Juniper 18.4-r2-s3 (including) 18.4-r2-s3 (including)
Junos Juniper 18.4-r3 (including) 18.4-r3 (including)
Junos Juniper 19.1 (including) 19.1 (including)
Junos Juniper 19.1-r1 (including) 19.1-r1 (including)
Junos Juniper 19.1-r1-s1 (including) 19.1-r1-s1 (including)
Junos Juniper 19.1-r1-s2 (including) 19.1-r1-s2 (including)
Junos Juniper 19.1-r1-s3 (including) 19.1-r1-s3 (including)
Junos Juniper 19.1-r1-s4 (including) 19.1-r1-s4 (including)
Junos Juniper 19.1-r2 (including) 19.1-r2 (including)
Junos Juniper 19.2 (including) 19.2 (including)
Junos Juniper 19.2-r1 (including) 19.2-r1 (including)
Junos Juniper 19.2-r1-s1 (including) 19.2-r1-s1 (including)
Junos Juniper 19.2-r1-s2 (including) 19.2-r1-s2 (including)
Junos Juniper 19.2-r1-s3 (including) 19.2-r1-s3 (including)
Junos Juniper 19.2-r1-s4 (including) 19.2-r1-s4 (including)
Junos Juniper 19.3 (including) 19.3 (including)
Junos Juniper 19.3-r1 (including) 19.3-r1 (including)
Junos Juniper 19.3-r1-s1 (including) 19.3-r1-s1 (including)
Junos Juniper 19.3-r2 (including) 19.3-r2 (including)
Junos Juniper 19.3-r2-s1 (including) 19.3-r2-s1 (including)
Junos Juniper 19.3-r2-s2 (including) 19.3-r2-s2 (including)
Junos Juniper 19.4-r1 (including) 19.4-r1 (including)
Junos Juniper 19.4-r1-s1 (including) 19.4-r1-s1 (including)

Potential Mitigations

  • Assume all input is malicious. Use an “accept known good” input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
  • When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, “boat” may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as “red” or “blue.”
  • Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code’s environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.

References