CVE-2026-46257
Received Received - Intake
Kernel Oops in Linux SP804 Timer Driver

Publication date: 2026-06-03

Last updated on: 2026-06-03

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: clocksource/drivers/timer-sp804: Fix an Oops when read_current_timer is called on ARM32 platforms where the SP804 is not registered as the sched_clock. On SP804, the delay timer shares the same clkevt instance with sched_clock. On some platforms, when sp804_clocksource_and_sched_clock_init is called with use_sched_clock not set to 1, sched_clkevt is not properly initialized. However, sp804_register_delay_timer is invoked unconditionally, and read_current_timer() subsequently calls sp804_read on an uninitialized sched_clkevt, leading to a kernel Oops when accessing sched_clkevt->value. Declare a dedicated clkevt instance exclusively for delay timer, instead of sharing the same clkevt with sched_clock. This ensures that read_current_timer continues to work correctly regardless of whether SP804 is selected as the sched_clock.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-03
Last Modified
2026-06-03
Generated
2026-06-04
AI Q&A
2026-06-03
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Powered Q&A
How can this vulnerability impact me? :

This vulnerability can cause the Linux kernel to crash (kernel Oops) on affected ARM32 platforms when the SP804 timer is used in a certain configuration. A kernel Oops can lead to system instability, unexpected reboots, or downtime, potentially disrupting services or applications running on the affected system.


Can you explain this vulnerability to me?

This vulnerability exists in the Linux kernel's clocksource driver for the SP804 timer on ARM32 platforms. The issue occurs because the delay timer and the sched_clock share the same clkevt instance. On some platforms, if the sched_clock is not properly initialized, the delay timer still tries to use this uninitialized clkevt instance. When the function read_current_timer() calls sp804_read() on this uninitialized sched_clkevt, it causes a kernel Oops (a type of kernel crash).

The fix involves declaring a dedicated clkevt instance exclusively for the delay timer instead of sharing it with the sched_clock. This change ensures that read_current_timer() works correctly regardless of whether SP804 is selected as the sched_clock.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart