CVE-2021-47396

mac80211-hwsim: fix late beacon hrtimer handling

published May 21, 2024

CVSS
—
EPSS
0%
Percentile
14.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

mac80211-hwsim: fix late beacon hrtimer handling

Thomas explained in https://lore.kernel.org/r/87mtoeb4hb.ffs@tglx

that our handling of the hrtimer here is wrong: If the timer fires

late (e.g. due to vCPU scheduling, as reported by Dmitry/syzbot)

then it tries to actually rearm the timer at the next deadline,

which might be in the past already:

1 2 3 N N+1

| | | ... | |

^ intended to fire here (1)

^ next deadline here (2)

^ actually fired here

The next time it fires, it's later, but will still try to schedule

for the next deadline (now 3), etc. until it catches up with N,

but that might take a long time, causing stalls etc.

Now, all of this is simulation, so we just have to fix it, but

note that the behaviour is wrong even per spec, since there's no

value then in sending all those beacons unaligned - they should be

aligned to the TBTT (1, 2, 3, ... in the picture), and if we're a

bit (or a lot) late, then just resume at that point.

Therefore, change the code to use hrtimer_forward_now() which will

ensure that the next firing of the timer would be at N+1 (in the

picture), i.e. the next interval point after the current time.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00239 · 14.1th percentile
Published
2024-05-21T15:03Z
EPSS history
Timeline
  • 21 MAY 15:03Z
    mac80211-hwsim: fix late beacon hrtimer handling
    cvelistv5