Skip to main content
← All vulnerabilities
CVE-2024-26884

bpf: Fix hashtab overflow check on 32-bit arches

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 4.19.311, 5.4.273, 5.10.214, 5.15.153, 6.1.83, and 3 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • Linux Linux

    From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in 33ec04cadb77605b71d9298311919303d390c4d5; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in 92c81fbb3ed2e0dfc33a4183a67135e1ab566ace; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in 64f00b4df0597590b199b62a37a165473bf658a6; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in 3b08cfc65f07b1132c1979d73f014ae6e04de55d; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in a83fdaeaea3677b83a53f72ace2d73a19bcd6d93; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in 8435f0961bf3dc65e204094349bd9aeaac1f8868; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in d817f0d34d927f2deb17dadbfe212c9a6a32ac3e; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in a6fa75b5096c0f9826a4fabe22d907b0a5bb1016; From daaf427c6ab392bedcd018e326b2ffa1e1110cd6 · fixed in 6787d916c2cf9850c97a0a3f73e08c43e7d973b1

  • Linux Linux

    3.19

  • KernelLinux

    From 3.19.0 · fixed in 4.19.311; From 4.20.0 · fixed in 5.4.273; From 5.5.0 · fixed in 5.10.214; From 5.11.0 · fixed in 5.15.153; From 5.16.0 · fixed in 6.1.83; From 6.2.0 · fixed in 6.6.23; From 6.7.0 · fixed in 6.7.11; From 6.8.0 · fixed in 6.8.2

References 9

git.kernel.org