CVE Vulnerabilities

CVE-2020-1625

Missing Release of Memory after Effective Lifetime

Published: Apr 08, 2020 | Modified: Sep 14, 2021
CVSS 3.x
6.5
MEDIUM
Source:
NVD
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
3.3 LOW
AV:A/AC:L/Au:N/C:N/I:N/A:P
RedHat/V2
RedHat/V3
Ubuntu

The kernel memory usage represented as temp via show system virtual-memory may constantly increase when Integrated Routing and Bridging (IRB) is configured with multiple underlay physical interfaces, and one interface flaps. This memory leak can affect running daemons (processes), leading to an extended Denial of Service (DoS) condition. Usage of temp virtual memory, shown here by a constantly increasing value of outstanding Requests, can be monitored by executing the show system virtual-memory command as shown below: user@junos> show system virtual-memory |match fpc|type|temp fpc0: ————————————————————————– Type InUse MemUse HighUse Requests Size(s) temp 2023 431K - 10551 16,32,64,128,256,512,1024,2048,4096,65536,262144,1048576,2097152,4194304,8388608 fpc1: ————————————————————————– Type InUse MemUse HighUse Requests Size(s) temp 2020 431K - 6460 16,32,64,128,256,512,1024,2048,4096,65536,262144,1048576,2097152,4194304,8388608 user@junos> show system virtual-memory |match fpc|type|temp fpc0: ————————————————————————– Type InUse MemUse HighUse Requests Size(s) temp 2023 431K - 16101 16,32,64,128,256,512,1024,2048,4096,65536,262144,1048576,2097152,4194304,8388608 fpc1: ————————————————————————– Type InUse MemUse HighUse Requests Size(s) temp 2020 431K - 6665 16,32,64,128,256,512,1024,2048,4096,65536,262144,1048576,2097152,4194304,8388608 user@junos> show system virtual-memory |match fpc|type|temp fpc0: ————————————————————————– Type InUse MemUse HighUse Requests Size(s) temp 2023 431K - 21867 16,32,64,128,256,512,1024,2048,4096,65536,262144,1048576,2097152,4194304,8388608 fpc1: ————————————————————————– Type InUse MemUse HighUse Requests Size(s) temp 2020 431K - 6858 16,32,64,128,256,512,1024,2048,4096,65536,262144,1048576,2097152,4194304,8388608 This issue affects Juniper Networks Junos OS: 16.1 versions prior to 16.1R7-S6; 17.1 versions prior to 17.1R2-S11, 17.1R3-S1; 17.2 versions prior to 17.2R2-S8, 17.2R3-S3; 17.2X75 versions prior to 17.2X75-D44; 17.3 versions prior to 17.3R2-S5, 17.3R3-S6; 17.4 versions prior to 17.4R2-S5, 17.4R3; 18.1 versions prior to 18.1R3-S7; 18.2 versions prior to 18.2R2-S5, 18.2R3; 18.2X75 versions prior to 18.2X75-D33, 18.2X75-D411, 18.2X75-D420, 18.2X75-D60; 18.3 versions prior to 18.3R1-S5, 18.3R2-S3, 18.3R3; 18.4 versions prior to 18.4R2-S2, 18.4R3; 19.1 versions prior to 19.1R1-S3, 19.1R2; 19.2 versions prior to 19.2R1-S3, 19.2R2. This issue does not affect Juniper Networks Junos OS 12.3 and 15.1.

Weakness

The product does not sufficiently track and release allocated memory after it has been used, which slowly consumes remaining memory.

Affected Software

Name Vendor Start Version End Version
Junos Juniper 16.1 (including) 16.1 (including)
Junos Juniper 16.1-r1 (including) 16.1-r1 (including)
Junos Juniper 16.1-r2 (including) 16.1-r2 (including)
Junos Juniper 16.1-r3 (including) 16.1-r3 (including)
Junos Juniper 16.1-r3-s10 (including) 16.1-r3-s10 (including)
Junos Juniper 16.1-r3-s11 (including) 16.1-r3-s11 (including)
Junos Juniper 16.1-r4 (including) 16.1-r4 (including)
Junos Juniper 16.1-r4-s12 (including) 16.1-r4-s12 (including)
Junos Juniper 16.1-r4-s2 (including) 16.1-r4-s2 (including)
Junos Juniper 16.1-r4-s3 (including) 16.1-r4-s3 (including)
Junos Juniper 16.1-r4-s4 (including) 16.1-r4-s4 (including)
Junos Juniper 16.1-r4-s6 (including) 16.1-r4-s6 (including)
Junos Juniper 16.1-r5 (including) 16.1-r5 (including)
Junos Juniper 16.1-r5-s4 (including) 16.1-r5-s4 (including)
Junos Juniper 16.1-r6-s1 (including) 16.1-r6-s1 (including)
Junos Juniper 16.1-r6-s6 (including) 16.1-r6-s6 (including)
Junos Juniper 16.1-r7 (including) 16.1-r7 (including)
Junos Juniper 16.1-r7-s2 (including) 16.1-r7-s2 (including)
Junos Juniper 16.1-r7-s3 (including) 16.1-r7-s3 (including)
Junos Juniper 16.1-r7-s4 (including) 16.1-r7-s4 (including)
Junos Juniper 16.1-r7-s5 (including) 16.1-r7-s5 (including)
Junos Juniper 17.1 (including) 17.1 (including)
Junos Juniper 17.1-r1 (including) 17.1-r1 (including)
Junos Juniper 17.1-r2 (including) 17.1-r2 (including)
Junos Juniper 17.1-r2-s1 (including) 17.1-r2-s1 (including)
Junos Juniper 17.1-r2-s10 (including) 17.1-r2-s10 (including)
Junos Juniper 17.1-r2-s2 (including) 17.1-r2-s2 (including)
Junos Juniper 17.1-r2-s3 (including) 17.1-r2-s3 (including)
Junos Juniper 17.1-r2-s4 (including) 17.1-r2-s4 (including)
Junos Juniper 17.1-r2-s5 (including) 17.1-r2-s5 (including)
Junos Juniper 17.1-r2-s6 (including) 17.1-r2-s6 (including)
Junos Juniper 17.1-r2-s7 (including) 17.1-r2-s7 (including)
Junos Juniper 17.1-r2-s8 (including) 17.1-r2-s8 (including)
Junos Juniper 17.1-r2-s9 (including) 17.1-r2-s9 (including)
Junos Juniper 17.1-r3 (including) 17.1-r3 (including)
Junos Juniper 17.2 (including) 17.2 (including)
Junos Juniper 17.2-r1 (including) 17.2-r1 (including)
Junos Juniper 17.2-r1-s1 (including) 17.2-r1-s1 (including)
Junos Juniper 17.2-r1-s2 (including) 17.2-r1-s2 (including)
Junos Juniper 17.2-r1-s3 (including) 17.2-r1-s3 (including)
Junos Juniper 17.2-r1-s4 (including) 17.2-r1-s4 (including)
Junos Juniper 17.2-r1-s5 (including) 17.2-r1-s5 (including)
Junos Juniper 17.2-r1-s7 (including) 17.2-r1-s7 (including)
Junos Juniper 17.2-r1-s8 (including) 17.2-r1-s8 (including)
Junos Juniper 17.2-r2 (including) 17.2-r2 (including)
Junos Juniper 17.2-r2-s6 (including) 17.2-r2-s6 (including)
Junos Juniper 17.2-r2-s7 (including) 17.2-r2-s7 (including)
Junos Juniper 17.2-r3-s1 (including) 17.2-r3-s1 (including)
Junos Juniper 17.2-r3-s2 (including) 17.2-r3-s2 (including)
Junos Juniper 17.2x75 (including) 17.2x75 (including)
Junos Juniper 17.3 (including) 17.3 (including)
Junos Juniper 17.3-r1-s1 (including) 17.3-r1-s1 (including)
Junos Juniper 17.3-r2 (including) 17.3-r2 (including)
Junos Juniper 17.3-r2-s1 (including) 17.3-r2-s1 (including)
Junos Juniper 17.3-r2-s2 (including) 17.3-r2-s2 (including)
Junos Juniper 17.3-r2-s3 (including) 17.3-r2-s3 (including)
Junos Juniper 17.3-r2-s4 (including) 17.3-r2-s4 (including)
Junos Juniper 17.3-r3 (including) 17.3-r3 (including)
Junos Juniper 17.3-r3-s1 (including) 17.3-r3-s1 (including)
Junos Juniper 17.3-r3-s2 (including) 17.3-r3-s2 (including)
Junos Juniper 17.3-r3-s3 (including) 17.3-r3-s3 (including)
Junos Juniper 17.3-r3-s4 (including) 17.3-r3-s4 (including)
Junos Juniper 17.3-r3-s5 (including) 17.3-r3-s5 (including)
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-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 18.1 (including) 18.1 (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.2 (including) 18.2 (including)
Junos Juniper 18.2-r1-s3 (including) 18.2-r1-s3 (including)
Junos Juniper 18.2-r1-s5 (including) 18.2-r1-s5 (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.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-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.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-r2 (including) 18.4-r2 (including)
Junos Juniper 18.4-r2-s1 (including) 18.4-r2-s1 (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.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)

Potential Mitigations

  • Choose a language or tool that provides automatic memory management, or makes manual memory management less error-prone.
  • For example, glibc in Linux provides protection against free of invalid pointers.
  • When using Xcode to target OS X or iOS, enable automatic reference counting (ARC) [REF-391].
  • To help correctly and consistently manage memory when programming in C++, consider using a smart pointer class such as std::auto_ptr (defined by ISO/IEC ISO/IEC 14882:2003), std::shared_ptr and std::unique_ptr (specified by an upcoming revision of the C++ standard, informally referred to as C++ 1x), or equivalent solutions such as Boost.

References