wifi: mac80211: handle empty FILS association request payload
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.56, 7.2.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: handle empty FILS association request payload fils_encrypt_assoc_req() accepts a (Re)Association Request frame whose last element is the FILS Session element. crypt_len is then zero and aes_siv_encrypt() is called with an empty plaintext. kmemdup() returns ZERO_SIZE_PTR for a zero-length allocation, so the unconditional sg_init_one() puts an invalid page into the scatterlist. With CONFIG_DEBUG_SG this triggers a kernel BUG in sg_set_buf(); without the debug check the bogus page is handed to the crypto backend. AES-SIV is defined for empty plaintext and the S2V result is then the complete output, so handle this case before the CTR step, which has nothing to encrypt.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 39404feee691a2dc524a629ed6eb5cfe5d8898d1 · fixed in 0b1e4a7eeb6a301ee33bd318982927cbdbae9f36; From 39404feee691a2dc524a629ed6eb5cfe5d8898d1 · fixed in 2f5b62f6534d336a62fdb9e88b186dd70b4323ef; From 39404feee691a2dc524a629ed6eb5cfe5d8898d1 · fixed in 452f1c9b76f7a122bbc4630b9691bda4809677c4; From 39404feee691a2dc524a629ed6eb5cfe5d8898d1 · fixed in 20f939b0c151d1d28e6b62a76b2454fa6fe877f2; From 39404feee691a2dc524a629ed6eb5cfe5d8898d1 · fixed in 5bfd4b0b40b79781d900cb2f7da0685070f53c67
- Linux Linux
4.10
- KernelLinux
From 4.10.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10