title: Junos OS and Junos OS Evolved: LLDP Out-of-Bounds Read vulnerability in l2cpd
description: An Out-of-bounds Read vulnerability in the processing of specially crafted LLDP frames by the Layer 2 Control Protocol Daemon (l2cpd) of Juniper Networks Junos OS and Junos OS Evolved may allow an attacker to cause a Denial of Service (DoS), or may lead to remote code execution (RCE). Continued receipt and processing of these frames, sent from the local broadcast domain, will repeatedly crash the l2cpd process and sustain the Denial of Service (DoS) condition. This issue affects: Juniper Networks Junos OS: 12.3 versions prior to 12.3R12-S18; 15.1 versions prior to 15.1R7-S9; 17.3 versions prior to 17.3R3-S12; 17.4 versions prior to 17.4R2-S13, 17.4R3-S5; 18.1 versions prior to 18.1R3-S13; 18.2 versions prior to 18.2R3-S8; 18.3 versions prior to 18.3R3-S5; 18.4 versions prior to 18.4R2-S8, 18.4R3-S8; 19.1 versions prior to 19.1R3-S5; 19.2 versions prior to 19.2R3-S3; 19.3 versions prior to 19.3R2-S6, 19.3R3-S2; 19.4 versions prior to 19.4R1-S4, 19.4R2-S4, 19.4R3-S3; 20.1 versions prior to 20.1R2-S2, 20.1R3; 20.2 versions prior to 20.2R3-S1; 20.3 versions prior to 20.3R2-S1, 20.3R3; 20.4 versions prior to 20.4R2. Juniper Networks Junos OS Evolved versions prior to 20.4R2-EVO.
problem types: CWE-125 Out-of-bounds Read
affected:
{
product: Junos OS
vendor: Juniper Networks
versions:
lessThan: 12.3R12-S18, status: affected, version: 12.3, versionType: custom
lessThan: 15.1R7-S9, status: affected, version: 15.1, versionType: custom
lessThan: 17.3R3-S12, status: affected, version: 17.3, versionType: custom
lessThan: 17.4R2-S13, 17.4R3-S5, status: affected, version: 17.4, versionType: custom
lessThan: 18.1R3-S13, status: affected, version: 18.1, versionType: custom
lessThan: 18.2R3-S8, status: affected, version: 18.2, versionType: custom
lessThan: 18.3R3-S5, status: affected, version: 18.3, versionType: custom
lessThan: 18.4R2-S8, 18.4R3-S8, status: affected, version: 18.4, versionType: custom
lessThan: 19.1R3-S5, status: affected, version: 19.1, versionType: custom
lessThan: 19.2R3-S3, status: affected, version: 19.2, versionType: custom
lessThan: 19.3R2-S6, 19.3R3-S2, status: affected, version: 19.3, versionType: custom
lessThan: 19.4R1-S4, 19.4R2-S4, 19.4R3-S3, status: affected, version: 19.4, versionType: custom
lessThan: 20.1R2-S2, 20.1R3, status: affected, version: 20.1, versionType: custom
lessThan: 20.2R3-S1, status: affected, version: 20.2, versionType: custom
lessThan: 20.3R2-S1, 20.3R3, status: affected, version: 20.3, versionType: custom
lessThan: 20.4R2, status: affected, version: 20.4, versionType: custom
}
{
product: Junos OS Evolved
vendor: Juniper Networks
versions:
lessThan: 20.4R2-EVO, status: affected, version: unspecified, versionType: custom
}
metrics:
cvssV3_1: [
attackComplexity: LOW
attackVector: ADJACENT_NETWORK
availabilityImpact: HIGH
baseScore: 8.8
baseSeverity: HIGH
confidentialityImpact: HIGH
integrityImpact: HIGH
privilegesRequired: NONE
scope: UNCHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
version: 3.1
]
exploits: Juniper SIRT is not aware of any malicious exploitation of this vulnerability.
solutions: The following software releases have been updated to resolve this specific issue:
Junos OS 12.3R12-S18, 15.1R7-S9, 17.3R3-S12, 17.4R2-S13, 17.4R3-S5, 18.1R3-S13, 18.2R3-S8, 18.3R3-S5, 18.4R2-S8, 18.4R3-S8, 19.1R3-S5, 19.3R2-S6, 19.3R3-S2, 19.4R1-S4, 19.4R2-S4, 19.4R3-S3, 20.1R2-S2, 20.1R3, 20.2R3-S1, 20.3R2-S1, 20.3R3, 20.4R2, 20.4R3, 21.1R1, 21.1R2, 21.2R1, and all subsequent releases.
Junos OS Evolved 20.4R2-EVO, 21.1R1-EVO, and all subsequent releases.
workarounds: 1. Configure the device to not load the L2CPD daemon using the following CLI config stanza.
set system processes l2cpd-service disable
Additional protocols L2CPD daemon supports include RSTP, MSTP, VSTP, ERP, xSTP and ERP protocols. After issuing set system processes l2cpd-service disable, RSTP, MSTP, VSTP, ERP,  xSTP and ERP protocols will cease to operate.  Please note, this is not an exhaustive list, disabling L2CPD may affect other protocols and services that rely upon L2CPD daemon to be present.  For example, L2ALD, MRVP, EVPN traffic, etc. may also cease to operate. To avoid downtime, customers considering applying this workaround should carefully test all workaround changes to their environment in a non-production environment first that mirrors or as closely as possible matches the production environment before applying to the production environment.
2. Configure target interfaces on the device to disable LLDP packet processing:
set protocols lldp interface <interface name> disable
3. On Switching platforms such as EX/QFX Series devices implement packet filters to discard LLDP packets with an EtherType of 0x88cc.
For example:
set firewall family ethernet-switching filter LLDP_EXAMPLE term 1 from ether-type 0x88cc
set firewall family ethernet-switching filter LLDP_EXAMPLE term 1 then discard
Workaround #3 does not work on MX Series devices.  MX Series devices should disable LLDP processing, filter off-system, or upgrade to a fixed release.
4. Lastly, as a method to reduce the risk of exploitation for this vulnerability, customers may implement off-system IDP and/or Firewall filtering methods such as disallowing LLDP EtherType to propagate completely on local segments, or by filtering broadcast addressed LLDP packets or unicast addressed LLDP packets not originated from trusted sources targeted to trusted destinations.
Additionally, it is good security practice to limit the exploitable attack surface of critical infrastructure networking equipment. Use access lists or firewall filters to limit access to the device via all means to only trusted, administrative networks, hosts and users.