{"id":"CVE-2022-22209","state":"PUBLISHED","title":"Junos OS: RIB and PFEs can get out of sync due to a memory leak caused by interface flaps or route churn","description":"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.","publishedAt":"2022-07-20T14:14:38.968Z","updatedAt":"2024-09-17T00:10:57.561Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"juniper"},"assigner":"juniper","products":["Juniper Networks Junos OS"],"affected":[{"vendor":"Juniper Networks","product":"Junos OS","versions":[{"version":"unspecified","status":"unaffected","lessThan":"21.2R1","versionType":"custom"},{"version":"21.2","status":"affected","lessThan":"21.2R3","versionType":"custom"},{"version":"21.3","status":"affected","lessThan":"21.3R2-S1, 21.3R3","versionType":"custom"},{"version":"21.4","status":"affected","lessThan":"21.4R1-S2, 21.4R2","versionType":"custom"}]}],"references":["https://kb.juniper.net/JSA69713"],"weaknesses":["CWE-401"],"ingestedAt":"2026-10-29T19:49:38.433Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/22xxx/CVE-2022-22209.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2022-22209","state":"PUBLISHED","datePublished":"2022-07-20T14:14:38.968Z","dateUpdated":"2024-09-17T00:10:57.561Z","assignerShortName":"juniper","assignerOrgId":"8cbe9d5a-a066-4c94-8978-4b15efeae968","dateReserved":"2021-12-21T00:00:00.000Z"},"containers":{"cna":{"title":"Junos OS: RIB and PFEs can get out of sync due to a memory leak caused by interface flaps or route churn","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"Juniper Networks","product":"Junos OS","versions":[{"version":"unspecified","status":"unaffected","lessThan":"21.2R1","versionType":"custom"},{"version":"21.2","status":"affected","lessThan":"21.2R3","versionType":"custom"},{"version":"21.3","status":"affected","lessThan":"21.3R2-S1, 21.3R3","versionType":"custom"},{"version":"21.4","status":"affected","lessThan":"21.4R1-S2, 21.4R2","versionType":"custom"}]}],"references":[{"url":"https://kb.juniper.net/JSA69713","tags":["x_refsource_CONFIRM"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-401","description":"CWE-401 Improper Release of Memory Before Removing Last Reference","lang":"en","type":"CWE"}]},{"descriptions":[{"description":"Denial of Service (DoS)","lang":"en","type":"text"}]}],"providerMetadata":{"shortName":"juniper","dateUpdated":"2022-07-20T14:14:38.000Z","orgId":"8cbe9d5a-a066-4c94-8978-4b15efeae968"},"datePublic":"2022-07-13T00:00:00.000Z","solutions":[{"lang":"en","value":"The following software releases have been updated to resolve this specific issue: 21.2R3, 21.3R2-S1, 21.3R3, 21.4R1-S2, 21.4R2, 22.1R1, and all subsequent releases.\nNote: Only those releases listed in the PROBLEM section above are affected. This fix has also been proactively committed into other releases that are not vulnerable to this issue."}],"source":{"advisory":"JSA69713","defect":["1642172"],"discovery":"USER"},"workarounds":[{"lang":"en","value":"There are no known workarounds for this issue."}],"x_generator":{"engine":"Vulnogram 0.0.9"},"x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"sirt@juniper.net","DATE_PUBLIC":"2022-07-13T16:00:00.000Z","ID":"CVE-2022-22209","STATE":"PUBLIC","TITLE":"Junos OS: RIB and PFEs can get out of sync due to a memory leak caused by interface flaps or route churn"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"Junos OS","version":{"version_data":[{"version_affected":"<","version_name":"21.2","version_value":"21.2R3"},{"version_affected":"<","version_name":"21.3","version_value":"21.3R2-S1, 21.3R3"},{"version_affected":"<","version_name":"21.4","version_value":"21.4R1-S2, 21.4R2"},{"version_affected":"!<","version_value":"21.2R1"}]}}]},"vendor_name":"Juniper Networks"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"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."}]},"generator":{"engine":"Vulnogram 0.0.9"},"impact":{"cvss":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-401 Improper Release of Memory Before Removing Last Reference"}]},{"description":[{"lang":"eng","value":"Denial of Service (DoS)"}]}]},"references":{"reference_data":[{"name":"https://kb.juniper.net/JSA69713","refsource":"CONFIRM","url":"https://kb.juniper.net/JSA69713"}]},"solution":[{"lang":"en","value":"The following software releases have been updated to resolve this specific issue: 21.2R3, 21.3R2-S1, 21.3R3, 21.4R1-S2, 21.4R2, 22.1R1, and all subsequent releases.\nNote: Only those releases listed in the PROBLEM section above are affected. This fix has also been proactively committed into other releases that are not vulnerable to this issue."}],"source":{"advisory":"JSA69713","defect":["1642172"],"discovery":"USER"},"work_around":[{"lang":"en","value":"There are no known workarounds for this issue."}]}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://kb.juniper.net/JSA69713","tags":["x_refsource_CONFIRM","x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-03T03:07:49.826Z"}}]}}}