CVE-2024-57953
NoneCVSS
—
EPSS
0.2%
Published
Feb 27, 2025
CISA due date
—
Cloudanix analysis
A calculation error in the Linux kernel could cause time settings on certain older computers to fail or produce wrong results.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Theoretical
- Impact
- Other
- Component
- OS kernel
- Class
- Other
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow in tps6594_rtc_set_offset() when multiplying a long 'offset' value by the large TICKS_PER_HOUR constant on 32-bit systems, where long is 32 bits and the result overflows before assignment to s64.
Why it matters to the business
Time offset configuration for affected RTC devices can produce incorrect values or failures on 32-bit Linux deployments, potentially disrupting time-sensitive operations until systems are updated.
How an attack unfolds
An attacker with local access triggers the rtc offset setting path with sufficiently large offset values on a 32-bit system, causing the multiplication to overflow and produce erroneous time adjustments.
How to fix it
Update the Linux kernel to a version containing the fix that changes TICKS_PER_HOUR to long long; apply the patch resolving the overflow in tps6594_rtc_set_offset().
How to confirm the fix worked
Confirm the kernel version includes the rtc tps6594 fix; test tps6594_rtc_set_offset() with large offset values on 32-bit builds and verify no overflow occurs.
Typical attack path
- Obtain local access on a 32-bit Linux system using the tps6594 RTC driver
- Invoke tps6594_rtc_set_offset() with an offset value near the upper end of the allowable range
- Trigger the multiplication tmp = offset * TICKS_PER_HOUR leading to overflow
- Observe incorrect or failed RTC time offset application
How to detect it
Inspect kernel logs and RTC-related syscalls for anomalies around offset setting; look for unexpected time jumps or failures in tps6594 driver initialization.
What your security team should do
- Prioritize kernel updates on all 32-bit systems using the tps6594 RTC driver
- Review and test RTC offset functionality after patching
- Monitor for any time-related anomalies on affected hardware
The record
In the Linux kernel, the following vulnerability has been resolved: rtc: tps6594: Fix integer overflow on 32bit systems The problem is this multiply in tps6594_rtc_set_offset() tmp = offset * TICKS_PER_HOUR; The "tmp" variable is an s64 but "offset" is a long in the (-277774)-277774 range. On 32bit systems a long can hold numbers up to approximately two billion. The number of TICKS_PER_HOUR is really large, (32768 * 3600) or roughly a hundred million. When you start multiplying by a hundred million it doesn't take long to overflow the two billion mark. Probably the safest way to fix this is to change the type of TICKS_PER_HOUR to long long because it's such a large number.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:13 | linux | 0 | No fix |
| Debian:13 | linux | 0 | 6.12.13-1 |
| Linux | Kernel | 6.8.0 | 6.12.13 |
| Ubuntu:24.10 | linux-aws | 0 | 6.11.0-1014.15 |
Related vulnerabilities
- CVE-2025-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39884 In the Linux kernel, the following vulnerability has been resolved: btrfs: fix subvolume… Also affects linux
- CVE-2025-39886 In the Linux kernel, the following vulnerability has been resolved: bpf: Tell memcg to… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39880 In the Linux kernel, the following vulnerability has been resolved: libceph: fix invalid… Also affects linux
- CVE-2025-39881 In the Linux kernel, the following vulnerability has been resolved: kernfs: Fix UAF in… Also affects linux
- CVE-2025-39882 In the Linux kernel, the following vulnerability has been resolved: drm/mediatek: fix… Also affects linux