CVE-2025-40124

Summary

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

sparc: fix accurate exception reporting in copy_{from_to}_user for UltraSPARC III

Anthony Yznaga tracked down that a BUG_ON in ext4 code with large folios enabled resulted from copy_from_user() returning impossibly large values greater than the size to be copied. This lead to __copy_from_iter() returning impossible values instead of the actual number of bytes it was able to copy.

The BUG_ON has been reported in https://lore.kernel.org/r/b14f55642207e63e907965e209f6323a0df6dcee.camel@physik.fu-berlin.de

The referenced commit introduced exception handlers on user-space memory references in copy_from_user and copy_to_user. These handlers return from the respective function and calculate the remaining bytes left to copy using the current register contents. The exception handlers expect that %o2 has already been masked during the bulk copy loop, but the masking was performed after that loop. This will fix the return value of copy_from_user and copy_to_user in the faulting case. The behaviour of memcpy stays unchanged.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < fdd43fe6d286f27b826572457a89c926f97e2d3aaffected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < 1198077606aeffb102587c6ea079ce99641c99d4affected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < 1857cdca12c4aff58bf26a7005a4d02850c29927affected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < 91eda032eb16e5d2be27c95584665bc555bb5a90affected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < dc766c4830a7e1e1ee9d7f77d4ab344f2eb23c8eaffected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < 5ef9c94d7110e90260c06868cf1dcf899b9f25eeaffected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < e50377c6b3f278c9f3ef017ffce17f5fcc9dace4affected
LinuxLinuxee841d0aff649164080e445e84885015958d8ff4 < 47b49c06eb62504075f0f2e2227aee2e2c2a58b3affected
LinuxLinux1c7e17b1c4d60cc5aa575460f7efb73686dd3b39affected
LinuxLinuxac663c54f40b2830b1ca32d1ae9d683fe248b14caffected
LinuxLinux4.4.34 < 4.5affected
LinuxLinux4.8.10 < 4.9affected
LinuxLinux4.9affected
LinuxLinux0 < 4.9unaffected
LinuxLinux5.4.301 <= 5.4.*unaffected
LinuxLinux5.10.246 <= 5.10.*unaffected
LinuxLinux5.15.195 <= 5.15.*unaffected
LinuxLinux6.1.156 <= 6.1.*unaffected
LinuxLinux6.6.112 <= 6.6.*unaffected
LinuxLinux6.12.53 <= 6.12.*unaffected
LinuxLinux6.17.3 <= 6.17.*unaffected
LinuxLinux6.18 <= *unaffected

Weaknesses

References