wifi: cfg80211: advance loop vars in cfg80211_merge_profile()
- 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
- 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: cfg80211: advance loop vars in cfg80211_merge_profile() cfg80211_merge_profile() reassembles a Multi-BSSID non-transmitted BSS profile that has been split across multiple consecutive MBSSID elements. Its while-loop calls cfg80211_get_profile_continuation(ie, ielen, mbssid_elem, sub_elem) but never advances mbssid_elem or sub_elem inside the body. Each iteration therefore searches for a continuation that follows the same fixed pair; the helper returns the same next_mbssid; and the same next_sub bytes are memcpy()'d into merged_ie at a growing offset until the buffer fills. Advance both mbssid_elem and sub_elem to the just-consumed continuation so the next call to cfg80211_get_profile_continuation() searches for a further continuation beyond it (or returns NULL when none exists). A specially-crafted malicious beacon can take advantage of this bug to cause the kernel to spend an excessive amount of time in cfg80211_merge_profile (up to as much as 2ms per beacon received), which could theoretically be abused in some way.
Timeline
- CVE published
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
5.2
References 8
git.kernel.org
- stable/c/5817e1e5205498a5df66eba2b34e817f4210fd0f
- stable/c/cedbb608494ba1e7a5c6c56b7f1d3fd470094f28
- stable/c/c0bc4c8bd556cbe036a5b9ed333c0aab9aadfcb8
- stable/c/1ced0f5a851f9cae274545a42a06c459b7fd8881
- stable/c/67915715fd3874057457363c87c63e18829527df
- stable/c/6cfae4914439878b8acb35c7e3b40096eeb2ad9c
- stable/c/1343a480f84b80c1249133a90ef87f8751d65cbb
- stable/c/7666dbb1bacc4ba522b96740cba7283d243d16e1