CVE Vulnerabilities

CVE-2022-22215

Missing Release of Resource after Effective Lifetime

Published: Jul 20, 2022 | Modified: Jul 29, 2022
CVSS 3.x
5.5
MEDIUM
Source:
NVD
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
Ubuntu

A Missing Release of File Descriptor or Handle after Effective Lifetime vulnerability in plugable authentication module (PAM) of Juniper Networks Junos OS and Junos OS Evolved allows a locally authenticated attacker with low privileges to cause a Denial of Service (DoS). It is possible that after the termination of a gRPC connection the respective/var/run/.env file is not getting deleted which if occurring repeatedly can cause inode exhaustion. Inode exhaustion can present itself in two different ways: 1. The following log message can be observed: host kernel: pid (), uid inumber on /.mount/var: out of inodes which by itself is a clear indication. 2. The following log message can be observed: host []: … : No space left on device which is not deterministic and just a representation of a write error which could have several reasons. So the following check needs to be done: user@host> show system storage no-forwarding Filesystem Size Used Avail Capacity Mounted on /dev/ada1p1 475M 300M 137M 69% /.mount/var which indicates that the write error is not actually due to a lack of disk space. If either 1. or 2. has been confirmed, then the output of: user@host> file list /var/run/*.env | count need to be checked and if it indicates a high (>10000) number of files the system has been affected by this issue. This issue affects: Juniper Networks Junos OS All versions prior to 19.1R3-S8; 19.2 versions prior to 19.2R3-S6; 19.3 versions prior to 19.3R3-S5; 19.4 versions prior to 19.4R2-S6, 19.4R3-S7; 20.1 version 20.1R1 and later versions; 20.2 versions prior to 20.2R3-S5; 20.3 versions prior to 20.3R3-S4; 20.4 versions prior to 20.4R3; 21.1 versions prior to 21.1R3; 21.2 versions prior to 21.2R2. Juniper Networks Junos OS Evolved All versions prior to 20.4R3-EVO; 21.1 versions prior to 21.1R3-S1-EVO; 21.2 versions prior to 21.2R1-S1-EVO, 21.2R2-EVO.

Weakness

The product does not release a resource after its effective lifetime has ended, i.e., after the resource is no longer needed.

Affected Software

Name Vendor Start Version End Version
Junos Juniper * 19.1 (excluding)
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-r1-s5 (including) 19.1-r1-s5 (including)
Junos Juniper 19.1-r1-s6 (including) 19.1-r1-s6 (including)
Junos Juniper 19.1-r2 (including) 19.1-r2 (including)
Junos Juniper 19.1-r2-s1 (including) 19.1-r2-s1 (including)
Junos Juniper 19.1-r2-s2 (including) 19.1-r2-s2 (including)
Junos Juniper 19.1-r2-s3 (including) 19.1-r2-s3 (including)
Junos Juniper 19.1-r3 (including) 19.1-r3 (including)
Junos Juniper 19.1-r3-s1 (including) 19.1-r3-s1 (including)
Junos Juniper 19.1-r3-s2 (including) 19.1-r3-s2 (including)
Junos Juniper 19.1-r3-s3 (including) 19.1-r3-s3 (including)
Junos Juniper 19.1-r3-s4 (including) 19.1-r3-s4 (including)
Junos Juniper 19.1-r3-s5 (including) 19.1-r3-s5 (including)
Junos Juniper 19.1-r3-s6 (including) 19.1-r3-s6 (including)
Junos Juniper 19.1-r3-s7 (including) 19.1-r3-s7 (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.2-r1-s5 (including) 19.2-r1-s5 (including)
Junos Juniper 19.2-r1-s6 (including) 19.2-r1-s6 (including)
Junos Juniper 19.2-r1-s7 (including) 19.2-r1-s7 (including)
Junos Juniper 19.2-r1-s8 (including) 19.2-r1-s8 (including)
Junos Juniper 19.2-r1-s9 (including) 19.2-r1-s9 (including)
Junos Juniper 19.2-r2 (including) 19.2-r2 (including)
Junos Juniper 19.2-r2-s1 (including) 19.2-r2-s1 (including)
Junos Juniper 19.2-r3 (including) 19.2-r3 (including)
Junos Juniper 19.2-r3-s1 (including) 19.2-r3-s1 (including)
Junos Juniper 19.2-r3-s2 (including) 19.2-r3-s2 (including)
Junos Juniper 19.2-r3-s3 (including) 19.2-r3-s3 (including)
Junos Juniper 19.2-r3-s4 (including) 19.2-r3-s4 (including)
Junos Juniper 19.2-r3-s5 (including) 19.2-r3-s5 (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.3-r2-s3 (including) 19.3-r2-s3 (including)
Junos Juniper 19.3-r2-s4 (including) 19.3-r2-s4 (including)
Junos Juniper 19.3-r2-s5 (including) 19.3-r2-s5 (including)
Junos Juniper 19.3-r2-s6 (including) 19.3-r2-s6 (including)
Junos Juniper 19.3-r3 (including) 19.3-r3 (including)
Junos Juniper 19.3-r3-s1 (including) 19.3-r3-s1 (including)
Junos Juniper 19.3-r3-s2 (including) 19.3-r3-s2 (including)
Junos Juniper 19.3-r3-s3 (including) 19.3-r3-s3 (including)
Junos Juniper 19.3-r3-s4 (including) 19.3-r3-s4 (including)
Junos Juniper 19.4 (including) 19.4 (including)
Junos Juniper 19.4-r1 (including) 19.4-r1 (including)
Junos Juniper 19.4-r1-s1 (including) 19.4-r1-s1 (including)
Junos Juniper 19.4-r1-s2 (including) 19.4-r1-s2 (including)
Junos Juniper 19.4-r1-s3 (including) 19.4-r1-s3 (including)
Junos Juniper 19.4-r1-s4 (including) 19.4-r1-s4 (including)
Junos Juniper 19.4-r2 (including) 19.4-r2 (including)
Junos Juniper 19.4-r2-s1 (including) 19.4-r2-s1 (including)
Junos Juniper 19.4-r2-s2 (including) 19.4-r2-s2 (including)
Junos Juniper 19.4-r2-s3 (including) 19.4-r2-s3 (including)
Junos Juniper 19.4-r2-s4 (including) 19.4-r2-s4 (including)
Junos Juniper 19.4-r2-s5 (including) 19.4-r2-s5 (including)
Junos Juniper 19.4-r3 (including) 19.4-r3 (including)
Junos Juniper 19.4-r3-s1 (including) 19.4-r3-s1 (including)
Junos Juniper 19.4-r3-s2 (including) 19.4-r3-s2 (including)
Junos Juniper 19.4-r3-s3 (including) 19.4-r3-s3 (including)
Junos Juniper 19.4-r3-s4 (including) 19.4-r3-s4 (including)
Junos Juniper 19.4-r3-s5 (including) 19.4-r3-s5 (including)
Junos Juniper 19.4-r3-s6 (including) 19.4-r3-s6 (including)
Junos Juniper 20.1-r1 (including) 20.1-r1 (including)
Junos Juniper 20.1-r1-s1 (including) 20.1-r1-s1 (including)
Junos Juniper 20.1-r1-s2 (including) 20.1-r1-s2 (including)
Junos Juniper 20.1-r1-s3 (including) 20.1-r1-s3 (including)
Junos Juniper 20.1-r1-s4 (including) 20.1-r1-s4 (including)
Junos Juniper 20.1-r2 (including) 20.1-r2 (including)
Junos Juniper 20.1-r2-s1 (including) 20.1-r2-s1 (including)
Junos Juniper 20.1-r2-s2 (including) 20.1-r2-s2 (including)
Junos Juniper 20.1-r3 (including) 20.1-r3 (including)
Junos Juniper 20.1-r3-s1 (including) 20.1-r3-s1 (including)
Junos Juniper 20.1-r3-s2 (including) 20.1-r3-s2 (including)
Junos Juniper 20.1-r3-s3 (including) 20.1-r3-s3 (including)
Junos Juniper 20.2 (including) 20.2 (including)
Junos Juniper 20.2-r1 (including) 20.2-r1 (including)
Junos Juniper 20.2-r1-s1 (including) 20.2-r1-s1 (including)
Junos Juniper 20.2-r1-s2 (including) 20.2-r1-s2 (including)
Junos Juniper 20.2-r1-s3 (including) 20.2-r1-s3 (including)
Junos Juniper 20.2-r2 (including) 20.2-r2 (including)
Junos Juniper 20.2-r2-s1 (including) 20.2-r2-s1 (including)
Junos Juniper 20.2-r2-s2 (including) 20.2-r2-s2 (including)
Junos Juniper 20.2-r2-s3 (including) 20.2-r2-s3 (including)
Junos Juniper 20.2-r3 (including) 20.2-r3 (including)
Junos Juniper 20.2-r3-s1 (including) 20.2-r3-s1 (including)
Junos Juniper 20.2-r3-s2 (including) 20.2-r3-s2 (including)
Junos Juniper 20.2-r3-s3 (including) 20.2-r3-s3 (including)
Junos Juniper 20.2-r3-s4 (including) 20.2-r3-s4 (including)
Junos Juniper 20.3 (including) 20.3 (including)
Junos Juniper 20.3-r1 (including) 20.3-r1 (including)
Junos Juniper 20.3-r1-s1 (including) 20.3-r1-s1 (including)
Junos Juniper 20.3-r1-s2 (including) 20.3-r1-s2 (including)
Junos Juniper 20.3-r2 (including) 20.3-r2 (including)
Junos Juniper 20.3-r2-s1 (including) 20.3-r2-s1 (including)
Junos Juniper 20.3-r3 (including) 20.3-r3 (including)
Junos Juniper 20.3-r3-s1 (including) 20.3-r3-s1 (including)
Junos Juniper 20.3-r3-s2 (including) 20.3-r3-s2 (including)
Junos Juniper 20.3-r3-s3 (including) 20.3-r3-s3 (including)
Junos Juniper 20.4 (including) 20.4 (including)
Junos Juniper 20.4-r1 (including) 20.4-r1 (including)
Junos Juniper 20.4-r1-s1 (including) 20.4-r1-s1 (including)
Junos Juniper 20.4-r2 (including) 20.4-r2 (including)
Junos Juniper 20.4-r2-s1 (including) 20.4-r2-s1 (including)
Junos Juniper 20.4-r2-s2 (including) 20.4-r2-s2 (including)
Junos Juniper 21.1 (including) 21.1 (including)
Junos Juniper 21.1-r1 (including) 21.1-r1 (including)
Junos Juniper 21.1-r1-s1 (including) 21.1-r1-s1 (including)
Junos Juniper 21.1-r2 (including) 21.1-r2 (including)
Junos Juniper 21.1-r2-s1 (including) 21.1-r2-s1 (including)
Junos Juniper 21.1-r2-s2 (including) 21.1-r2-s2 (including)
Junos Juniper 21.2 (including) 21.2 (including)
Junos Juniper 21.2-r1 (including) 21.2-r1 (including)
Junos Juniper 21.2-r1-s1 (including) 21.2-r1-s1 (including)
Junos Juniper 21.2-r1-s2 (including) 21.2-r1-s2 (including)

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, languages such as Java, Ruby, and Lisp perform automatic garbage collection that releases memory for objects that have been deallocated.
  • Use resource-limiting settings provided by the operating system or environment. For example, when managing system resources in POSIX, setrlimit() can be used to set limits for certain types of resources, and getrlimit() can determine how many resources are available. However, these functions are not available on all operating systems.
  • When the current levels get close to the maximum that is defined for the application (see CWE-770), then limit the allocation of further resources to privileged users; alternately, begin releasing resources for less-privileged users. While this mitigation may protect the system from attack, it will not necessarily stop attackers from adversely impacting other users.
  • Ensure that the application performs the appropriate error checks and error handling in case resources become unavailable (CWE-703).

References