CVE-2025-40124

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

State
Published
Severity
7.8 High
Published
Nov 12, 2025
Updated
Aug 5, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ee841d0aff649164080e445e84885015958d8ff4 to before fdd43fe6d286f27b826572457a89c926f97e2d3aAffected
  • ee841d0aff649164080e445e84885015958d8ff4 to before 1198077606aeffb102587c6ea079ce99641c99d4Affected
  • ee841d0aff649164080e445e84885015958d8ff4 to before 1857cdca12c4aff58bf26a7005a4d02850c29927Affected
  • ee841d0aff649164080e445e84885015958d8ff4 to before 91eda032eb16e5d2be27c95584665bc555bb5a90Affected
  • ee841d0aff649164080e445e84885015958d8ff4 to before dc766c4830a7e1e1ee9d7f77d4ab344f2eb23c8eAffected
  • ee841d0aff649164080e445e84885015958d8ff4 to before 5ef9c94d7110e90260c06868cf1dcf899b9f25eeAffected
  • ee841d0aff649164080e445e84885015958d8ff4 to before e50377c6b3f278c9f3ef017ffce17f5fcc9dace4Affected
  • ee841d0aff649164080e445e84885015958d8ff4 to before 47b49c06eb62504075f0f2e2227aee2e2c2a58b3Affected
  • 1c7e17b1c4d60cc5aa575460f7efb73686dd3b39Affected
  • ac663c54f40b2830b1ca32d1ae9d683fe248b14cAffected
  • 4.4.34 to before 4.5Affected
  • 4.8.10 to before 4.9Affected
LinuxLinux
  • 4.9Affected
  • before 4.9Not affected
  • 5.4.301 through 5.4.*Not affected
  • 5.10.246 through 5.10.*Not affected
  • 5.15.195 through 5.15.*Not affected
  • 6.1.156 through 6.1.*Not affected
  • 6.6.112 through 6.6.*Not affected
  • 6.12.53 through 6.12.*Not affected
  • 6.17.3 through 6.17.*Not affected
  • 6.18 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.