CVE-2025-39813

ftrace: Fix potential warning in trace_printk_seq during ftrace_dump

State
Published
Severity
Not scored
Published
Sep 16, 2025
Updated
May 12, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

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

ftrace: Fix potential warning in trace_printk_seq during ftrace_dump

When calling ftrace_dump_one() concurrently with reading trace_pipe, a WARN_ON_ONCE() in trace_printk_seq() can be triggered due to a race condition.

The issue occurs because:

CPU0 (ftrace_dump) CPU1 (reader) echo z > /proc/sysrq-trigger

!trace_empty(&iter) trace_iterator_reset(&iter) <- len = size = 0 cat /sys/kernel/tracing/trace_pipe trace_find_next_entry_inc(&iter) __find_next_entry ring_buffer_empty_cpu <- all empty return NULL

trace_printk_seq(&iter.seq) WARN_ON_ONCE(s->seq.len >= s->seq.size)

In the context between trace_empty() and trace_find_next_entry_inc() during ftrace_dump, the ring buffer data was consumed by other readers. This caused trace_find_next_entry_inc to return NULL, failing to populate `iter.seq`. At this point, due to the prior trace_iterator_reset, both `iter.seq.len` and `iter.seq.size` were set to 0. Since they are equal, the WARN_ON_ONCE condition is triggered.

Move the trace_printk_seq() into the if block that checks to make sure the return value of trace_find_next_entry_inc() is non-NULL in ftrace_dump_one(), ensuring the 'iter.seq' is properly populated before subsequent operations.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • d769041f865330034131525ee6a7f72eb4af2a24 to before f299353e7ccbcc5c2ed8993c48fbe7609cbe729aAffected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before 5ab0ec206deb99eb3baf8f1d7602aeaa91dbcc85Affected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before a6f0f8873cc30fd4543b09adf03f7f51d293f0e6Affected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before e80ff23ba8bdb0f41a1afe2657078e4097d13a9aAffected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before 28c8fb7ae2ad27d81c8de3c4fe608c509f6a18aaAffected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before ced94e137e6cd5e79c65564841d3b7695d0f5fa3Affected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before fbd4cf7ee4db65ef36796769fe978e9eba6f0de4Affected
  • d769041f865330034131525ee6a7f72eb4af2a24 to before 4013aef2ced9b756a410f50d12df9ebe6a883e4aAffected
LinuxLinux
  • 2.6.28Affected
  • before 2.6.28Not affected
  • 5.4.298 through 5.4.*Not affected
  • 5.10.242 through 5.10.*Not affected
  • 5.15.191 through 5.15.*Not affected
  • 6.1.150 through 6.1.*Not affected
  • 6.6.104 through 6.6.*Not affected
  • 6.12.45 through 6.12.*Not affected
  • 6.16.5 through 6.16.*Not affected
  • 6.17 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.