CVE-2024-49866: tracing/timerlat: Fix a race during cpuhp processing
In the Linux kernel, the following vulnerability has been resolved:
tracing/timerlat: Fix a race during cpuhp processing
There is another found exception that the "timerlat/1" thread was
scheduled on CPU0, and lead to timer corruption finally:
```
ODEBUG: init active (active state 0) object: ffff888237c2e108 object type: hrtimer hint: timerlat_irq+0x0/0x220
WARNING: CPU: 0 PID: 426 at lib/debugobjects.c:518 debug_print_object+0x7d/0xb0
Modules linked in:
CPU: 0 UID: 0 PID: 426 Comm: timerlat/1 Not tainted 6.11.0-rc7+ #45
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:debug_print_object+0x7d/0xb0
...
Call Trace:
<TASK>
? __warn+0x7c/0x110
? debug_print_object+0x7d/0xb0
? report_bug+0xf1/0x1d0
? prb_read_valid+0x17/0x20
? handle_bug+0x3f/0x70
? exc_invalid_op+0x13/0x60
? asm_exc_invalid_op+0x16/0x20
? debug_print_object+0x7d/0xb0
? debug_print_object+0x7d/0xb0
? __pfx_timerlat_irq+0x10/0x10
__debug_object_init+0x110/0x150
hrtimer_init+0x1d/0x60
timerlat_main+0xab/0x2d0
? __pfx_timerlat_main+0x10/0x10
kthread+0xb7/0xe0
? __pfx_kthread+0x10/0x10
ret_from_fork+0x2d/0x40
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
```
After tracing the scheduling event, it was discovered that the migration
of the "timerlat/1" thread was performed during thread creation. Further
analysis confirmed that it is because the CPU online processing for
osnoise is implemented through workers, which is asynchronous with the
offline processing. When the worker was scheduled to create a thread, the
CPU may has already been removed from the cpu_online_mask during the offline
process, resulting in the inability to select the right CPU:
T1 | T2
[CPUHP_ONLINE] | cpu_device_down()
osnoise_hotplug_workfn() |
| cpus_write_lock()
| takedown_cpu(1)
| cpus_write_unlock()
[CPUHP_OFFLINE] |
cpus_read_lock() |
start_kthread(1) |
cpus_read_unlock() |
To fix this, skip online processing if the CPU is already offline.
Security readout for executives and security teams
Plain-English summary
A Linux timing tracer can mishandle a processor being removed while background setup is underway. This may place a timing thread on the wrong CPU and corrupt high-resolution timer state. The CVSS vector describes a local vulnerability, so risk is concentrated on affected systems permitting low-privileged local access and exercising tracing or CPU hotplug.
Executive priority
Treat this as a high-priority local kernel patch, not an internet-facing emergency. Accelerate remediation on multi-user hosts and systems using tracing or CPU hotplug. Require distributor confirmation because backported fixes can make simple version checks misleading.
Technical view
Asynchronous osnoise CPU-online processing can race with CPU-offline processing. A worker may start the timerlat kernel thread after its intended CPU has left the online mask, causing incorrect scheduling and high-resolution timer corruption. The Linux fix skips online processing when the CPU is already offline.
Likely exposure
The supplied affected data identifies Linux kernel lines from 5.14 through 6.12, but its flattened version entries do not establish reliable boundaries. Exposure is more plausible where osnoise or timerlat tracing, CPU hotplug, and low-privileged local access coexist. Distribution backports may change version-based conclusions.
Exploitation context
CISA KEV status is false, and no supplied source reports active exploitation. CVSS 3.1 scores this 7.8 with local access, low privileges, low complexity, and no user interaction. The evidence demonstrates a diagnostic warning and timer corruption in QEMU, not a successful security compromise.
Researcher notes
No CWE is supplied. The root cause is a CPU-hotplug ordering race between asynchronous online work and offline processing. Exact affected ranges and practical attacker-controlled reachability are not fully demonstrated in the bundle. Assess code presence, feature use, local privilege boundaries, and distribution backports without inferring remote exposure.
Mitigation direction
Apply a vendor kernel update incorporating the applicable Linux stable fix.
Consult the operating-system distributor for exact fixed package and backport status.
Until updated, reduce untrusted local access where operationally practical.
Avoid unnecessary timerlat or osnoise activity during CPU hotplug where operationally safe.
Validation and detection
Record the running kernel version and compare it with the distributor's CVE guidance.
Confirm the installed kernel contains the applicable referenced stable fix.
Reboot after updating and verify the corrected kernel is running.
Review kernel logs for timerlat, hrtimer, debugobjects, or CPU-hotplug warnings.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-49866 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.