Vulnerability Name:

CVE-2022-22209 (CCN-231145)

Assigned:2021-12-21
Published:2022-07-13
Updated:2022-07-29
Summary:A Missing Release of Memory after Effective Lifetime vulnerability in the kernel of Juniper Networks Junos OS allows an unauthenticated network based attacker to cause a Denial of Service (DoS). On all Junos platforms, the Kernel Routing Table (KRT) queue can get stuck due to a memory leak triggered by interface flaps or route churn leading to RIB and PFEs getting out of sync. The memory leak causes RTNEXTHOP/route and next-hop memory pressure issue and the KRT queue will eventually get stuck with the error- 'ENOMEM -- Cannot allocate memory'. The out-of-sync state between RIB and FIB can be seen with the "show route" and "show route forwarding-table" command. This issue will lead to failures for adding new routes. The KRT queue status can be checked using the CLI command "show krt queue": user@host > show krt state High-priority add queue: 1 queued ADD nhtype Router index 0 (31212) error 'ENOMEM -- Cannot allocate memory' kqp '0x8ad5e40' The following messages will be observed in /var/log/messages, which indicate high memory for routes/nexthops: host rpd[16279]: RPD_RT_HWM_NOTICE: New RIB highwatermark for routes: 266 [2022-03-04 05:06:07] host rpd[16279]: RPD_KRT_Q_RETRIES: nexthop ADD: Cannot allocate memory host rpd[16279]: RPD_KRT_Q_RETRIES: nexthop ADD: Cannot allocate memory host kernel: rts_veto_net_delayed_unref_limit: Route/nexthop memory is severe pressure. User Application to perform recovery actions. O p 8 err 12, rtsm_id 0:-1, msg type 10, veto simulation: 0. host kernel: rts_veto_net_delayed_unref_limit: Memory usage of M_RTNEXTHOP type = (806321208) Max size possible for M_RTNEXTHOP type = (689432176) Current delayed unref = (0), Max delayed unref on this platform = (120000) Current delayed weight unref = (0) Max delayed weight unref on this platform = (400000) curproc = rpd. This issue affects: Juniper Networks Junos OS 21.2 versions prior to 21.2R3; 21.3 versions prior to 21.3R2-S1, 21.3R3; 21.4 versions prior to 21.4R1-S2, 21.4R2; This issue does not affect Juniper Networks Junos OS versions prior to 21.2R1.
CVSS v3 Severity:7.5 High (CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
6.5 Medium (Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:U/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): High
7.5 High (CCN CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
6.5 Medium (CCN Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:U/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): High
CVSS v2 Severity:7.8 High (CCN CVSS v2 Vector: AV:N/AC:L/Au:N/C:N/I:N/A:C)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Athentication (Au): None
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Complete
Vulnerability Type:CWE-401
Vulnerability Consequences:Denial of Service
References:Source: MITRE
Type: CNA
CVE-2022-22209

Source: XF
Type: UNKNOWN
juniper-cve202222209-dos(231145)

Source: CONFIRM
Type: Exploit, Vendor Advisory
https://kb.juniper.net/JSA69713

Source: CCN
Type: Juniper Networks Security Bulletin JSA69713
Junos OS: RIB and PFEs can get out of sync due to a memory leak caused by interface flaps or route churn (CVE-2022-22209)

Vulnerable Configuration:Configuration 1:
  • cpe:/o:juniper:junos:21.2:r1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.2:r1-s1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.3:r1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.3:r2:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.2:r2:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.2:-:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.2:r1-s2:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.2:r2-s1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.2:r2-s2:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.3:r1-s1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.3:r1-s2:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.4:r1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.4:r1-s1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.4:-:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.3:-:*:*:*:*:*:*

  • Configuration CCN 1:
  • cpe:/o:juniper:junos:21.2:-:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.3:r1:*:*:*:*:*:*
  • OR cpe:/o:juniper:junos:21.4:r1:*:*:*:*:*:*

  • * Denotes that component is vulnerable
    BACK
    juniper junos 21.2 r1
    juniper junos 21.2 r1-s1
    juniper junos 21.3 r1
    juniper junos 21.3 r2
    juniper junos 21.2 r2
    juniper junos 21.2 -
    juniper junos 21.2 r1-s2
    juniper junos 21.2 r2-s1
    juniper junos 21.2 r2-s2
    juniper junos 21.3 r1-s1
    juniper junos 21.3 r1-s2
    juniper junos 21.4 r1
    juniper junos 21.4 r1-s1
    juniper junos 21.4 -
    juniper junos 21.3 -
    juniper junos 21.2 -
    juniper junos 21.3 r1
    juniper junos 21.4 r1