CVE-2025-71078

EUVD-2026-2265
In the Linux kernel, the following vulnerability has been resolved:

powerpc/64s/slb: Fix SLB multihit issue during SLB preload

On systems using the hash MMU, there is a software SLB preload cache that
mirrors the entries loaded into the hardware SLB buffer. This preload
cache is subject to periodic eviction — typically after every 256 context
switches — to remove old entry.

To optimize performance, the kernel skips switch_mmu_context() in
switch_mm_irqs_off() when the prev and next mm_struct are the same.
However, on hash MMU systems, this can lead to inconsistencies between
the hardware SLB and the software preload cache.

If an SLB entry for a process is evicted from the software cache on one
CPU, and the same process later runs on another CPU without executing
switch_mmu_context(), the hardware SLB may retain stale entries. If the
kernel then attempts to reload that entry, it can trigger an SLB
multi-hit error.

The following timeline shows how stale SLB entries are created and can
cause a multi-hit error when a process moves between CPUs without a
MMU context switch.

CPU 0                                   CPU 1
-----                                    -----
Process P
exec                                    swapper/1
 load_elf_binary
  begin_new_exc
    activate_mm
     switch_mm_irqs_off
      switch_mmu_context
       switch_slb
       /*
        * This invalidates all
        * the entries in the HW
        * and setup the new HW
        * SLB entries as per the
        * preload cache.
        */
context_switch
sched_migrate_task migrates process P to cpu-1

Process swapper/0                       context switch (to process P)
(uses mm_struct of Process P)           switch_mm_irqs_off()
                                         switch_slb
                                           load_slb++
                                            /*
                                            * load_slb becomes 0 here
                                            * and we evict an entry from
                                            * the preload cache with
                                            * preload_age(). We still
                                            * keep HW SLB and preload
                                            * cache in sync, that is
                                            * because all HW SLB entries
                                            * anyways gets evicted in
                                            * switch_slb during SLBIA.
                                            * We then only add those
                                            * entries back in HW SLB,
                                            * which are currently
                                            * present in preload_cache
                                            * (after eviction).
                                            */
                                        load_elf_binary continues...
                                         setup_new_exec()
                                          slb_setup_new_exec()

                                        sched_switch event
                                        sched_migrate_task migrates
                                        process P to cpu-0

context_switch from swapper/0 to Process P
 switch_mm_irqs_off()
  /*
   * Since both prev and next mm struct are same we don't call
   * switch_mmu_context(). This will cause the HW SLB and SW preload
   * cache to go out of sync in preload_new_slb_context. Because there
   * was an SLB entry which was evicted from both HW and preload cache
   * on cpu-1. Now later in preload_new_slb_context(), when we will try
   * to add the same preload entry again, we will add this to the SW
   * preload cache and then will add it to the HW SLB. Since on cpu-0
   * this entry was never invalidated, hence adding this entry to the HW
   * SLB will cause a SLB multi-hit error.
   */
load_elf_binary cont
---truncated---
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
7.8 HIGH
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 6%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
4.20.1 ≤
𝑥
< 5.10.248
linuxlinux_kernel
5.11 ≤
𝑥
< 5.15.198
linuxlinux_kernel
5.16 ≤
𝑥
< 6.1.160
linuxlinux_kernel
6.2 ≤
𝑥
< 6.6.120
linuxlinux_kernel
6.7 ≤
𝑥
< 6.12.64
linuxlinux_kernel
6.13 ≤
𝑥
< 6.18.4
linuxlinux_kernel
4.20
linuxlinux_kernel
6.19:rc1
linuxlinux_kernel
6.19:rc2
linuxlinux_kernel
6.19:rc3
linuxlinux_kernel
6.19:rc4
linuxlinux_kernel
6.19:rc5
linuxlinux_kernel
6.19:rc6
linuxlinux_kernel
6.19:rc7
linuxlinux_kernel
6.19:rc8
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
6.1.170-3
fixed
bookworm (security)
6.1.172-1
fixed
bullseye
vulnerable
bullseye (security)
vulnerable
forky
7.0.9-1
fixed
sid
7.0.9-1
fixed
trixie
6.12.86-1
fixed
trixie (security)
6.12.90-1
fixed
linux-6.1
bullseye (security)
6.1.172-1~deb11u1
fixed
openSUSE logo
openSUSE / SLES Releases
openSUSE Product
Release
cluster-md-kmp-default
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
dlm-kmp-default
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
gfs2-kmp-default
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
kernel-64kb
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-azure
suse enterprise sap 15 SP7
6.4.0-150700.20.27.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.27.1
fixed
kernel-default
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-default-base
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1.150700.17.21.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1.150700.17.21.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1.150600.12.40.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1.150700.17.21.1
fixed
kernel-docs
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-macros
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-obs-build
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-source
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-source-azure
suse enterprise sap 15 SP7
6.4.0-150700.20.27.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.27.1
fixed
kernel-syms
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
kernel-syms-azure
suse enterprise sap 15 SP7
6.4.0-150700.20.27.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.27.1
fixed
kernel-zfcpdump
suse enterprise desktop 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.31.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.31.1
fixed
ocfs2-kmp-default
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed
reiserfs-kmp-default
suse enterprise server 15 SP6
6.4.0-150600.23.87.1
fixed