CVE-2025-71109

MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits

State
Published
Severity
7.1 High
Published
Jan 14, 2026
Updated
Oct 30, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

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

MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits

Since commit e424054000878 ("MIPS: Tracing: Reduce the overhead of dynamic Function Tracer"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.

This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.

This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • e424054000878d7eb11e44289242886d6e219d22 to before 3f7a003fe2646337fbc5dd41051ad6754ac34064Affected
  • e424054000878d7eb11e44289242886d6e219d22 to before 9cfda98cf02eacfa6b09076e98bd479fd73407c2Affected
  • e424054000878d7eb11e44289242886d6e219d22 to before e3e33ac2eb69d595079a1a1e444c2fb98efdd42dAffected
  • e424054000878d7eb11e44289242886d6e219d22 to before 7f39b9d0e86ed6236b9a5fb67616ab1f76c4f150Affected
  • e424054000878d7eb11e44289242886d6e219d22 to before 36dac9a3dda1f2bae343191bc16b910c603cac25Affected
LinuxLinux
  • 2.6.35Affected
  • before 2.6.35Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.64 through 6.12.*Not affected
  • 6.18.3 through 6.18.*Not affected
  • 6.19 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.