CVE-2021-47396
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/05/2024
Last modified:
25/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mac80211-hwsim: fix late beacon hrtimer handling<br />
<br />
Thomas explained in https://lore.kernel.org/r/87mtoeb4hb.ffs@tglx<br />
that our handling of the hrtimer here is wrong: If the timer fires<br />
late (e.g. due to vCPU scheduling, as reported by Dmitry/syzbot)<br />
then it tries to actually rearm the timer at the next deadline,<br />
which might be in the past already:<br />
<br />
1 2 3 N N+1<br />
| | | ... | |<br />
<br />
^ intended to fire here (1)<br />
^ next deadline here (2)<br />
^ actually fired here<br />
<br />
The next time it fires, it&#39;s later, but will still try to schedule<br />
for the next deadline (now 3), etc. until it catches up with N,<br />
but that might take a long time, causing stalls etc.<br />
<br />
Now, all of this is simulation, so we just have to fix it, but<br />
note that the behaviour is wrong even per spec, since there&#39;s no<br />
value then in sending all those beacons unaligned - they should be<br />
aligned to the TBTT (1, 2, 3, ... in the picture), and if we&#39;re a<br />
bit (or a lot) late, then just resume at that point.<br />
<br />
Therefore, change the code to use hrtimer_forward_now() which will<br />
ensure that the next firing of the timer would be at N+1 (in the<br />
picture), i.e. the next interval point after the current time.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.9 (including) | 5.4.151 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.71 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.14.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.15:rc3:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/2c204cf594df3b9468368dc9d0b24d482d93cda7
- https://git.kernel.org/stable/c/313bbd1990b6ddfdaa7da098d0c56b098a833572
- https://git.kernel.org/stable/c/9bee85de2c8155388c09a2e1530a243ec1c96f05
- https://git.kernel.org/stable/c/ed2adf69e29848d1eb9df99633dde655421c92ed
- https://git.kernel.org/stable/c/2c204cf594df3b9468368dc9d0b24d482d93cda7
- https://git.kernel.org/stable/c/313bbd1990b6ddfdaa7da098d0c56b098a833572
- https://git.kernel.org/stable/c/9bee85de2c8155388c09a2e1530a243ec1c96f05
- https://git.kernel.org/stable/c/ed2adf69e29848d1eb9df99633dde655421c92ed



