Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2025-71080

ipv6: fix a BUG in rt6_get_pcpu_route() under PREEMPT_RT

Description

In the Linux kernel, the following vulnerability has been resolved: ipv6: fix a BUG in rt6_get_pcpu_route() under PREEMPT_RT On PREEMPT_RT kernels, after rt6_get_pcpu_route() returns NULL, the current task can be preempted. Another task running on the same CPU may then execute rt6_make_pcpu_route() and successfully install a pcpu_rt entry. When the first task resumes execution, its cmpxchg() in rt6_make_pcpu_route() will fail because rt6i_pcpu is no longer NULL, triggering the BUG_ON(prev). It's easy to reproduce it by adding mdelay() after rt6_get_pcpu_route(). Using preempt_disable/enable is not appropriate here because ip6_rt_pcpu_alloc() may sleep. Fix this by handling the cmpxchg() failure gracefully on PREEMPT_RT: free our allocation and return the existing pcpu_rt installed by another task. The BUG_ON is replaced by WARN_ON_ONCE for non-PREEMPT_RT kernels where such races should not occur.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • d2d6422f8bd17c6bb205133e290625a564194496 to < 1dc33ad0867325f8d2c6d7b2a6f542d4f3121f66affected
  • d2d6422f8bd17c6bb205133e290625a564194496 to < 787515ccb2292f82eb0876993129154629a49651affected
  • d2d6422f8bd17c6bb205133e290625a564194496 to < 1adaea51c61b52e24e7ab38f7d3eba023b2d050daffected

Linux Linux

Default version status: affected

  • 6.12affected
  • 0 to < 6.12unaffected
  • 6.12.64 to ≤ 6.12.*unaffected
  • 6.18.4 to ≤ 6.18.*unaffected
  • 6.19 to ≤ *unaffected

References