CVE-2024-26884: bpf: Fix hashtab overflow check on 32-bit arches

Description

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

bpf: Fix hashtab overflow check on 32-bit arches

The hashtab code relies on roundup_pow_of_two() to compute the number of
hash buckets, and contains an overflow check by checking if the
resulting value is 0. However, on 32-bit arches, the roundup code itself
can overflow by doing a 32-bit left-shift of an unsigned long value,
which is undefined behaviour, so it is not guaranteed to truncate
neatly. This was triggered by syzbot on the DEVMAP_HASH type, which
contains the same check, copied from the hashtab code. So apply the same
fix to hashtab, by moving the overflow check to before the roundup.

Classification

CVE ID: CVE-2024-26884

Affected Products

Vendor: Linux

Product: Linux

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.04% (probability of being exploited)

EPSS Percentile: 5.06% (scored less or equal to compared to others)

EPSS Date: 2025-02-03 (when was this score calculated)

References

https://git.kernel.org/stable/c/33ec04cadb77605b71d9298311919303d390c4d5
https://git.kernel.org/stable/c/92c81fbb3ed2e0dfc33a4183a67135e1ab566ace
https://git.kernel.org/stable/c/64f00b4df0597590b199b62a37a165473bf658a6
https://git.kernel.org/stable/c/3b08cfc65f07b1132c1979d73f014ae6e04de55d
https://git.kernel.org/stable/c/a83fdaeaea3677b83a53f72ace2d73a19bcd6d93
https://git.kernel.org/stable/c/8435f0961bf3dc65e204094349bd9aeaac1f8868
https://git.kernel.org/stable/c/d817f0d34d927f2deb17dadbfe212c9a6a32ac3e
https://git.kernel.org/stable/c/a6fa75b5096c0f9826a4fabe22d907b0a5bb1016
https://git.kernel.org/stable/c/6787d916c2cf9850c97a0a3f73e08c43e7d973b1

Timeline