CVE Vulnerabilities

CVE-2019-0003

Reachable Assertion

Published: Jan 15, 2019 | Modified: Sep 29, 2020
CVSS 3.x
5.9
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
4.3 MEDIUM
AV:N/AC:M/Au:N/C:N/I:N/A:P
RedHat/V2
RedHat/V3
Ubuntu

When a specific BGP flowspec configuration is enabled and upon receipt of a specific matching BGP packet meeting a specific term in the flowspec configuration, a reachable assertion failure occurs, causing the routing protocol daemon (rpd) process to crash with a core file being generated. Affected releases are Juniper Networks Junos OS: 12.1X46 versions prior to 12.1X46-D77 on SRX Series; 12.3 versions prior to 12.3R12-S10; 12.3X48 versions prior to 12.3X48-D70 on SRX Series; 14.1X53 versions prior to 14.1X53-D47 on EX2200/VC, EX3200, EX3300/VC, EX4200, EX4300, EX4550/VC, EX4600, EX6200, EX8200/VC (XRE), QFX3500, QFX3600, QFX5100; 15.1 versions prior to 15.1R3; 15.1F versions prior to 15.1F3; 15.1X49 versions prior to 15.1X49-D140 on SRX Series; 15.1X53 versions prior to 15.1X53-D59 on EX2300/EX3400.

Weakness

The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.

Affected Software

Name Vendor Start Version End Version
Junos Juniper 12.1x46 (including) 12.1x46 (including)
Junos Juniper 12.1x46-d10 (including) 12.1x46-d10 (including)
Junos Juniper 12.1x46-d15 (including) 12.1x46-d15 (including)
Junos Juniper 12.1x46-d20 (including) 12.1x46-d20 (including)
Junos Juniper 12.1x46-d25 (including) 12.1x46-d25 (including)
Junos Juniper 12.1x46-d30 (including) 12.1x46-d30 (including)
Junos Juniper 12.1x46-d35 (including) 12.1x46-d35 (including)
Junos Juniper 12.1x46-d40 (including) 12.1x46-d40 (including)
Junos Juniper 12.1x46-d45 (including) 12.1x46-d45 (including)
Junos Juniper 12.1x46-d50 (including) 12.1x46-d50 (including)
Junos Juniper 12.1x46-d55 (including) 12.1x46-d55 (including)
Junos Juniper 12.1x46-d60 (including) 12.1x46-d60 (including)

Extended Description

While assertion is good for catching logic errors and reducing the chances of reaching more serious vulnerability conditions, it can still lead to a denial of service. For example, if a server handles multiple simultaneous connections, and an assert() occurs in one single connection that causes all other connections to be dropped, this is a reachable assertion that leads to a denial of service.

Potential Mitigations

References