CVE-2019-5108
An exploitable denial-of-service vulnerability exists in the Linux kernel prior to mainline 5.3. An attacker could exploit this vulnerability by triggering AP to send IAPP location updates for stations before the required authentication process has completed. This could lead to different denial-of-service scenarios, either by causing CAM table attacks, or by leading to traffic flapping if faking already existing clients in other nearby APs of the same wireless infrastructure. An attacker can forge Authentication and Association Request packets to trigger this vulnerability.
Linux 4.14.98-v7+
7.4 - AV:A/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
CWE-440 - Expected Behavior Violation
The Linux kernel will send Inter-Access Point Protocol(IAPP) location updates to support roaming, allowing clients to seamlessly go from one access point to another. However, upon receipt of an Authentication and AssociationRequest packet, Linux will send a broadcast packet with the MAC address of the connecting station to the LAN. This packet is sent before the station has successfully authenticated. The kernel provides a helper fuction for drivers cfg80211_send_layer2_update()
that provides this functionality. Drivers call this function when a new station entry is added (before full authentication is completed) in ieee80211_add_station()
.
An attacker could iterate through a large set of unique MAC addresses to trigger DoS attacks within the upstream network infrastructure. A number of different denial-of-service attacks could be performed by an unauthenticated attacker, for example: an attacker could use this vulnerability to flood a switch with a large number of MAC addresses, resulting in filling the CAM table to capacity, preventing the switch from learning new MAC addresses.
Discovered by Mitchell Frank of Cisco