Linux kernel CAM table denial-of-service vulnerability

2019-12-11T00:00:00
ID TALOS-2019-0900
Type talos
Reporter Talos Intelligence
Modified 2019-12-11T00:00:00

Description

Talos Vulnerability Report

TALOS-2019-0900

Linux kernel CAM table denial-of-service vulnerability

December 11, 2019
CVE Number

CVE-2019-5108

Summary

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.

Tested Versions

Linux 4.14.98-v7+

Product URLs

<https://www.kernel.org>

CVSSv3 Score

7.4 - AV:A/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H

CWE

CWE-440 - Expected Behavior Violation

Details

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.

Credit

Discovered by Mitchell Frank of Cisco


Vulnerability Reports Next Report

TALOS-2019-0853

Previous Report

TALOS-2019-0943