https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286447
Bug ID: 286447
Summary: net80211: Insufficient length verification with HT
information elements
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: wireless
Assignee: [email protected]
Reporter: [email protected]
Similar to Bug 286446, I can also put a zero length IE at the end of the IE
list with its type as HT capability. There is a length verification here, but
it only sets htcap to NULL and ieee80211_parse_beacon may still return 0:
https://github.com/freebsd/freebsd-src/blob/578cbd03f7a53eb23b71b560f8816f84f5a1461b/sys/net80211/ieee80211_input.c#L759
If the system tries to join the AP based on the beacon, it parses the IE list
again in ieee80211_ies_expand, this time assuming that the length of IEs are
already validated:
https://github.com/freebsd/freebsd-src/blob/578cbd03f7a53eb23b71b560f8816f84f5a1461b/sys/net80211/ieee80211_node.c#L974
The subsequent use of htcap may therefore read out of bounds again:
https://github.com/freebsd/freebsd-src/blob/578cbd03f7a53eb23b71b560f8816f84f5a1461b/sys/net80211/ieee80211_node.c#L980
The same issue applies to HT cap and info as well as VHT cap and info, although
the latter is not in use AFAIK. I noticed that the information from the
out-of-bounds read seem to be largely used in configuring HT for 802.11n and
none of it is easily obtainable over the air by an attacker, so the impact
should be rather small.
--
You are receiving this mail because:
You are the assignee for the bug.