CVE-2025-21733

tracing/osnoise: Fix resetting of tracepoints

published February 27, 2025

CVSS
—
EPSS
0%
Percentile
8.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

tracing/osnoise: Fix resetting of tracepoints

If a timerlat tracer is started with the osnoise option OSNOISE_WORKLOAD

disabled, but then that option is enabled and timerlat is removed, the

tracepoints that were enabled on timerlat registration do not get

disabled. If the option is disabled again and timelat is started, then it

triggers a warning in the tracepoint code due to registering the

tracepoint again without ever disabling it.

Do not use the same user space defined options to know to disable the

tracepoints when timerlat is removed. Instead, set a global flag when it

is enabled and use that flag to know to disable the events.

~# echo NO_OSNOISE_WORKLOAD > /sys/kernel/tracing/osnoise/options

~# echo timerlat > /sys/kernel/tracing/current_tracer

~# echo OSNOISE_WORKLOAD > /sys/kernel/tracing/osnoise/options

~# echo nop > /sys/kernel/tracing/current_tracer

~# echo NO_OSNOISE_WORKLOAD > /sys/kernel/tracing/osnoise/options

~# echo timerlat > /sys/kernel/tracing/current_tracer

Triggers:

------------[ cut here ]------------

WARNING: CPU: 6 PID: 1337 at kernel/tracepoint.c:294 tracepoint_add_func+0x3b6/0x3f0

Modules linked in:

CPU: 6 UID: 0 PID: 1337 Comm: rtla Not tainted 6.13.0-rc4-test-00018-ga867c441128e-dirty #73

Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014

RIP: 0010:tracepoint_add_func+0x3b6/0x3f0

Code: 48 8b 53 28 48 8b 73 20 4c 89 04 24 e8 23 59 11 00 4c 8b 04 24 e9 36 fe ff ff 0f 0b b8 ea ff ff ff 45 84 e4 0f 84 68 fe ff ff <0f> 0b e9 61 fe ff ff 48 8b 7b 18 48 85 ff 0f 84 4f ff ff ff 49 8b

RSP: 0018:ffffb9b003a87ca0 EFLAGS: 00010202

RAX: 00000000ffffffef RBX: ffffffff92f30860 RCX: 0000000000000000

RDX: 0000000000000000 RSI: ffff9bf59e91ccd0 RDI: ffffffff913b6410

RBP: 000000000000000a R08: 00000000000005c7 R09: 0000000000000002

R10: ffffb9b003a87ce0 R11: 0000000000000002 R12: 0000000000000001

R13: ffffb9b003a87ce0 R14: ffffffffffffffef R15: 0000000000000008

FS: 00007fce81209240(0000) GS:ffff9bf6fdd00000(0000) knlGS:0000000000000000

CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033

CR2: 000055e99b728000 CR3: 00000001277c0002 CR4: 0000000000172ef0

Call Trace:

<TASK>

? __warn.cold+0xb7/0x14d

? tracepoint_add_func+0x3b6/0x3f0

? report_bug+0xea/0x170

? handle_bug+0x58/0x90

? exc_invalid_op+0x17/0x70

? asm_exc_invalid_op+0x1a/0x20

? __pfx_trace_sched_migrate_callback+0x10/0x10

? tracepoint_add_func+0x3b6/0x3f0

? __pfx_trace_sched_migrate_callback+0x10/0x10

? __pfx_trace_sched_migrate_callback+0x10/0x10

tracepoint_probe_register+0x78/0xb0

? __pfx_trace_sched_migrate_callback+0x10/0x10

osnoise_workload_start+0x2b5/0x370

timerlat_tracer_init+0x76/0x1b0

tracing_set_tracer+0x244/0x400

tracing_set_trace_write+0xa0/0xe0

vfs_write+0xfc/0x570

? do_sys_openat2+0x9c/0xe0

ksys_write+0x72/0xf0

do_syscall_64+0x79/0x1c0

entry_SYSCALL_64_after_hwframe+0x76/0x7e

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00195 · 8.7th percentile
Published
2025-02-27T02:12Z
EPSS history
Timeline
  • 27 FEB 02:12Z
    tracing/osnoise: Fix resetting of tracepoints
    cvelistv5