cveboard RSS feed

CVE-2024-40974

CVE.org · Published

Historical CVEsJSONAI instructions

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

Plain text

CNA source text (English)

powerpc/pseries: Enforce hcall result buffer validity and size

In the Linux kernel, the following vulnerability has been resolved: powerpc/pseries: Enforce hcall result buffer validity and size plpar_hcall(), plpar_hcall9(), and related functions expect callers to provide valid result buffers of certain minimum size. Currently this is communicated only through comments in the code and the compiler has no idea. For example, if I write a bug like this: long retbuf[PLPAR_HCALL_BUFSIZE]; // should be PLPAR_HCALL9_BUFSIZE plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, ...); This compiles with no diagnostics emitted, but likely results in stack corruption at runtime when plpar_hcall9() stores results past the end of the array. (To be clear this is a contrived example and I have not found a real instance yet.) To make this class of error less likely, we can use explicitly-sized array parameters instead of pointers in the declarations for the hcall APIs. When compiled with -Warray-bounds[1], the code above now provokes a diagnostic like this: error: array argument is too small; is of size 32, callee requires at least 72 [-Werror,-Warray-bounds] 60 | plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, | ^ ~~~~~~ [1] Enabled for LLVM builds but not GCC for now. See commit 0da6e5fd6c37 ("gcc: disable '-Warray-bounds' for gcc-13 too") and related changes.

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)
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgitacf2b80c31c37acab040baa3cf5f19fbd5140b18UnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgit19c166ee42cf16d8b156a6cb4544122d9a65d3caUnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgita8c988d752b3d98d5cc1e3929c519a55ef55426cUnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgit262e942ff5a839b9e4f3302a8987928b0c8b8a2dUnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgit8aa11aa001576bf3b00dcb8559564ad7a3113588UnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgit3ad0034910a57aa88ed9976b1431b7b8c84e0048UnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgitaa6107dcc4ce9a3451f2d729204713783b657257UnavailableNone listed
b9377ffc3a03cde558d76349a262a1adbb6d3112affectedgitff2e185cf73df480ec69675936c4ee75a445c3e4UnavailableNone 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)
2.6.19affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver2.6.19UnavailableNone listed
4.19.317unaffectedsemverUnavailable4.19.*None listed
5.4.279unaffectedsemverUnavailable5.4.*None listed
5.10.221unaffectedsemverUnavailable5.10.*None listed
5.15.162unaffectedsemverUnavailable5.15.*None listed
6.1.96unaffectedsemverUnavailable6.1.*None listed
6.6.36unaffectedsemverUnavailable6.6.*None listed
6.9.7unaffectedsemverUnavailable6.9.*None listed
6.10unaffectedoriginal_commit_for_fixUnavailable*None listed