CVE-2022-48848·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: tracing/osnoise: Do not unregister events twice Nicolas reported that using: # trace-cmd record -e all -M 10 -p osnoise --poll Resulted in the following kernel warning: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1217 at kernel/tracepoint.c:404 tracepoint_probe_unregister+0x280/0x370 [...] CPU: 0 PID: 1217 Comm: trace-cmd Not tainted 5.17.0-rc6-next-20220307-nico+ #19 RIP: 0010:tracepoint_probe_unregister+0x280/0x370 [...] CR2: 00007ff919b29497 CR3: 0000000109da4005 CR4: 0000000000170ef0 Call Trace: <TASK> osnoise_workload_stop+0x36/0x90 tracing_set_tracer+0x108/0x260 tracing_set_trace_write+0x94/0xd0 ? __check_object_size.part.0+0x10a/0x150 ? selinux_file_permission+0x104/0x150 vfs_write+0xb5/0x290 ksys_write+0x5f/0xe0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7ff919a18127 [...] ---[ end trace 0000000000000000 ]--- The warning complains about an attempt to unregister an unregistered tracepoint. This happens on trace-cmd because it first stops tracing, and then switches the tracer to nop. Which is equivalent to: # cd /sys/kernel/tracing/ # echo osnoise > current_tracer # echo 0 > tracing_on # echo nop > current_tracer The osnoise tracer stops the workload when no trace instance is actually collecting data. This can be caused both by disabling tracing or disabling the tracer itself. To avoid unregistering events twice, use the existing trace_osnoise_callback_enabled variable to check if the events (and the workload) are actually active before trying to deactivate them.
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.16.15
- Published
- 2024-07-16
Affected versions
From: 5.16
Until: 5.16.15
Fixed in: 5.16.15
How to fix this CVE
Update the Linux kernel to version 5.16.15 or later to resolve a double unregistration issue in the osnoise tracer that causes kernel warnings and potential stability issues. The vulnerability occurs when tracing is disabled followed by a tracer switch, triggering duplicate event unregistration attempts. Apply this patch immediately to systems running kernel versions 5.16.0 through 5.16.14.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check your current kernel version by running: uname -r
- Verify if kernel is in the vulnerable range (5.16.0-5.16.14) by comparing output against known affected versions
- Review kernel logs for tracepoint warnings: sudo dmesg | grep -i 'tracepoint_probe_unregister'
- Confirm the fix is applied by verifying kernel version is 5.16.15 or later with: uname -r
FAQ
What is CVE-2022-48848?
This vulnerability is a logic flaw in the Linux kernel's osnoise tracer where stopping tracing and switching tracers can attempt to unregister event handlers twice, causing kernel warnings and potential instability.
Is CVE-2022-48848 being actively exploited?
No, this vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog and has no public exploit code available.
What versions of Kernel are affected by CVE-2022-48848?
Linux kernel versions 5.16.0 through 5.16.14 are affected. Version 5.16.15 and later contain the fix.
How do I check if my server is vulnerable to CVE-2022-48848?
Run `uname -r` and verify the output. If it shows a version between 5.16.0 and 5.16.14, your system is vulnerable. For example, if the output is '5.16.10-generic', an immediate kernel update is required.
Does Defensia detect CVE-2022-48848?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2022-48848 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-48848. Free for 1 server.
Get started free