]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
net80211: reject mixed plaintext/encrypted fragments
authorMathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
Sun, 6 Jun 2021 22:10:41 +0000 (22:10 +0000)
committerMark Johnston <markj@FreeBSD.org>
Tue, 15 Mar 2022 17:40:34 +0000 (13:40 -0400)
commita780210457fe7448c6f4cdd81578f377974b2925
treee45df0170c04dcbdcb6b0a1e3bb66f79302eef1e
parentb2107e60f62ed2a232900d77ec54804228d1bfc8
net80211: reject mixed plaintext/encrypted fragments

ieee80211_defrag() accepts fragmented 802.11 frames in a protected Wi-Fi
network even when some of the fragments are not encrypted.
Track whether the fragments are encrypted or not and only accept
successive ones if they match the state of the first fragment.

This relates to section 6.3 in the 2021 Usenix "FragAttacks" (Fragment
and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation)
paper.

Submitted by: Mathy Vanhoef (Mathy.Vanhoef kuleuven.be)
Security: CVE-2020-26147
PR: 256118

(cherry picked from commit 11572d7d7fb9802ceb46ea9dc6cbe3bb95373e55)
(cherry picked from commit e13d483c5677d12b52f1c81537d54faa85ed43b9)
(cherry picked from commit 00cd5a2f614ae2cf1daa30cde7f91de9cdde2393)

Approved by: so
Security: FreeBSD-SA-22:02.wifi
sys/net80211/ieee80211_adhoc.c
sys/net80211/ieee80211_hostap.c
sys/net80211/ieee80211_input.c
sys/net80211/ieee80211_input.h
sys/net80211/ieee80211_mesh.c
sys/net80211/ieee80211_sta.c
sys/net80211/ieee80211_wds.c