cveboard RSS feed

CVE-2026-31525

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2026
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

bpf: Fix undefined behavior in interpreter sdiv/smod for INT_MIN

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix undefined behavior in interpreter sdiv/smod for INT_MIN The BPF interpreter's signed 32-bit division and modulo handlers use the kernel abs() macro on s32 operands. The abs() macro documentation (include/linux/math.h) explicitly states the result is undefined when the input is the type minimum. When DST contains S32_MIN (0x80000000), abs((s32)DST) triggers undefined behavior and returns S32_MIN unchanged on arm64/x86. This value is then sign-extended to u64 as 0xFFFFFFFF80000000, causing do_div() to compute the wrong result. The verifier's abstract interpretation (scalar32_min_max_sdiv) computes the mathematically correct result for range tracking, creating a verifier/interpreter mismatch that can be exploited for out-of-bounds map value access. Introduce abs_s32() which handles S32_MIN correctly by casting to u32 before negating, avoiding signed overflow entirely. Replace all 8 abs((s32)...) call sites in the interpreter's sdiv32/smod32 handlers. s32 is the only affected case -- the s64 division/modulo handlers do not use abs().

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
ec0e2da95f72d4a46050a4d994e4fe471474fd80affectedgit694ea55f1b1c74f9942d91ec366ae9e822422e42UnavailableNone listed
ec0e2da95f72d4a46050a4d994e4fe471474fd80affectedgit9ab1227765c446942f290c83382f0b19887c55cfUnavailableNone listed
ec0e2da95f72d4a46050a4d994e4fe471474fd80affectedgitf14ca604c0ff274fba19f73f1f0485c0047c1396UnavailableNone listed
ec0e2da95f72d4a46050a4d994e4fe471474fd80affectedgit0d5d8c3ce45c734aaf3c51cbef59155a6746157dUnavailableNone listed
ec0e2da95f72d4a46050a4d994e4fe471474fd80affectedgitc77b30bd1dcb61f66c640ff7d2757816210c7cb0UnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
6.6affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver6.6UnavailableNone listed
6.6.131unaffectedsemverUnavailable6.6.*None listed
6.12.80unaffectedsemverUnavailable6.12.*None listed
6.18.21unaffectedsemverUnavailable6.18.*None listed
6.19.11unaffectedsemverUnavailable6.19.*None listed
7.0unaffectedoriginal_commit_for_fixUnavailable*None listed