
CVE catalog
CVE-2026-98395
In the Linux kernel, the following vulnerability has been resolved: powerpc/entry: Fix irq_soft_mask corruption on replayed interrupt exit When __replay_soft_interrupts() replays a pending interrupt
- Severity
- Medium · CVSS 5.5
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Published
- Updated
- Source
- [NVD] · [CVE record]
- EPSS
- 0.19% · Oct 25, 2026
In the Linux kernel, the following vulnerability has been resolved: powerpc/entry: Fix irq_soft_mask corruption on replayed interrupt exit When __replay_soft_interrupts() replays a pending interrupt (e.g. PACA_IRQ_DEC -> timer_interrupt), it calls the handler directly with a synthetic pt_regs. The DEFINE_INTERRUPT_HANDLER_ASYNC wrapper around each handler calls arch_interrupt_async_exit_prepare() on the way out, which calls arch_interrupt_exit_prepare() -> local_irq_disable() -> arch_local_irq_disable(), which does: irq_soft_mask_set(IRQS_DISABLED) /* 0x1 */ This unconditionally overwrites irq_soft_mask with IRQS_DISABLED (0x1), stripping the IRQS_PMI_DISABLED (0x2) bit. The result is that irq_soft_mask is 0x1 instead of IRQS_ALL_DISABLED (0x3) when the handler returns to __replay_soft_interrupts(). For a normally-taken interrupt this is harmless: the next interrupt always enters through arch_interrupt_enter_prepare() which unconditionally sets irq_soft_mask to IRQS_ALL_DISABLED. But during replay, next_interrupt() is called directly between replayed handlers without going back through arch_interrupt_enter_prepare(), so the stripped bit is never restored. next_interrupt() then fires a WARNING: WARNING: arch/powerpc/kernel/irq_64.c:75 WARN_ON(irq_soft_mask_return() != IRQS_ALL_DISABLED) The warning was observed early in boot on a POWER10 pseries guest during kmem_cache_init_late(), where a spinlock release triggers interrupt replay that processes a pending timer interrupt. Debugger state confirming the bug: Before timer_interrupt(®s): irq_soft_mask = 0x3 (IRQS_ALL_DISABLED) correct irq_happened = 0x41 (HARD_DIS|REPLAYING) correct After timer_interrupt(®s) returns: irq_soft_mask = 0x1 (IRQS_DISABLED) WRONG - PMI bit stripped irq_happened = 0x41 unchanged The fix is to replace local_irq_disable() with hard_irq_disable(). hard_irq_disable() is the right primitive here for two reasons: 1. On PPC64 (hw_irq.h:301) it calls irq_soft_mask_set_return(IRQS_ALL_DISABLED), setting the soft mask to 0x3 (both IRQS_DISABLED and IRQS_PMI_DISABLED), which preserves the PMI bit and fixes the WARNING. The additional work it does (__hard_irq_disable(), PACA_IRQ_HARD_DIS |=) is redundant but safe since both are already set at this point in the exit path; the trace_hardirqs_off() inside is guarded by if (!arch_irqs_disabled_flags(flags)) so it will not double-fire. 2. On PPC32 (hw_irq.h:467) hard_irq_disable() maps to arch_local_irq_disable() -> __hard_irq_disable(), which clears MSR[EE] in hardware. This is exactly correct: PPC32 has no soft-mask PACA mechanism, so the hardware disable is the right way to satisfy irqentry_exit()'s requirement. This also fixes a build error on PPC32 where irq_soft_mask_set() is only defined under CONFIG_PPC64: arch/powerpc/include/asm/entry-common.h:273: error: implicit declaration of function 'irq_soft_mask_set' Using hard_irq_disable() requires no #ifdef and is consistent with how the rest of the entry code (e.g. entry-common.h:463) handles the same PPC32/PPC64 split.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | linux | sid | 7.2.12-1 | fixed |
| Debian | linux | forky | 7.2.12-1 | fixed |
| Debian | linux | trixie | 6.12.107-1 | not affected |
| Debian | linux | trixie-security | 6.12.113-1 | not affected |
| Debian | linux | bookworm | 6.1.176-1 | not affected |
| Debian | linux | bookworm-security | 6.1.190-1 | not affected |
| Linux | Kernel | Not reported | 7.2.7 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | linux | source | sid | 7.2.7-1 | not yet assigned | Not reported | Not reported |
| Debian | linux | source | forky | 7.2.7-1 | not yet assigned | Not reported | Not reported |
| Debian | linux | source | trixie | Not affected | unimportant | Not reported | Not reported |
| Debian | linux | source | bookworm | Not affected | unimportant | Not reported | Not reported |
| Linux | Kernel | Linux | Not reported | 7.2.7 | Not reported | CVE-2026-98395 | Not reported |
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [bpftool]Not affected
Source package: [linux]
Details (6)
7.1.0+6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
7.1.0+6.1.176-1· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
7.5.0+6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
7.5.0+6.12.95-1~bpo12+1· arm64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
7.1.0+6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
7.1.0+6.1.180-1· arm64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [hyperv-daemons]Not affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· arm64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· arm64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [intel-sdsi]Not affected
Source package: [linux]
Details (1)
6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
- [libcpupower1]Not affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· arm64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· arm64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [libcpupower-dev]Not affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· arm64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· arm64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [linux-bpf-dev]Not affected
Source package: [linux]
Details (2)
6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· arm64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
- [linux-compiler-gcc-12-x86]Not affected
Source package: [linux]
Details (2)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [linux-config-6.1]Not affected
Source package: [linux]
Details (4)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· arm64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [linux-cpupower]Not affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· amd64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· arm64 · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.1.180-1· amd64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· arm64 · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [linux-doc]Not affected
Source package: [linux]
Details (32)
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· all · bookwormNot affected
nvd · linux · debian · bookworm
6.12.43-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.43-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.57-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.57-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.63-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.63-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.69-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.69-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.73-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.73-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.74-2~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.74-2~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.85-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.85-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.86-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.86-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.88-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.88-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.90-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.90-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.90-2~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.90-2~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.94-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.94-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.12.95-1~bpo12+1· all · bookworm-backportsNot affected
nvd · linux · debian · bookworm
6.1.180-1· all · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· all · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [linux-doc-6.1]Not affected
Source package: [linux]
Details (6)
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.176-1· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.180-1· all · bookworm-securityNot affected
nvd · linux · debian · bookworm
6.1.180-1· all · bookworm-securityNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-amd64]Not affected
Source package: [linux]
Details (1)
6.1.170-3· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-arm64]Not affected
Source package: [linux]
Details (1)
6.1.170-3· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-cloud-amd64]Not affected
Source package: [linux]
Details (1)
6.1.170-3· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-cloud-arm64]Not affected
Source package: [linux]
Details (1)
6.1.170-3· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-common]Not affected
Source package: [linux]
Details (2)
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-common-rt]Not affected
Source package: [linux]
Details (2)
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
6.1.170-3· all · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-rt-amd64]Not affected
Source package: [linux]
Details (1)
6.1.170-3· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-47-rt-arm64]Not affected
Source package: [linux]
Details (1)
6.1.170-3· arm64 · bookwormNot affected
nvd · linux · debian · bookworm
- [linux-headers-6.1.0-50-amd64]Not affected
Source package: [linux]
Details (1)
6.1.176-1· amd64 · bookwormNot affected
nvd · linux · debian · bookworm
Observed:
References
- [https://ftp.suse.com/pub/projects/security/]
- [https://nvd.nist.gov/vuln/detail/CVE-2026-98395]
- [https://osv.dev/vulnerability/DEBIAN-CVE-2026-98395]
- [https://security-tracker.debian.org/tracker/CVE-2026-98395]
- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98395.json]
- [https://wid.cert-bund.de/.well-known/csaf/white/2026/wid-sec-w-2026-3951.json]
[CERT-Bund public advisories] · [Debian Security Tracker] · [FIRST EPSS] · [National Vulnerability Database (NVD)] · [OSV Package Vulnerability Database] · [Red Hat security advisories and VEX] · [SUSE security advisories and VEX]