PT-2026-121858

CVE-2026-98888

·

Published

2026-10-23

·

Updated

2026-10-23

Description by

Score
N/A
Not available

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.

In the Linux kernel, the following vulnerability has been resolved:
arm64: kprobes: Allow reentering kprobes while single-stepping
A kprobe can be hit while another kprobe is in KPROBE HIT SS state. This can happen when tracing or perf code runs from the debug exception path while the first kprobe is preparing or executing its out-of-line single-step instruction.
Currently arm64 treats a kprobe hit in KPROBE HIT SS as unrecoverable, the same as a hit in KPROBE REENTER. This is too strict. A hit in KPROBE HIT SS is still a one-level reentry and can be handled by saving the current kprobe state and setting up single-step for the new probe, just like reentry from KPROBE HIT ACTIVE or KPROBE HIT SSDONE.
The truly unrecoverable case is hitting another kprobe while already in KPROBE REENTER, because the reentry save area has already been consumed.
Move KPROBE HIT SS to the recoverable reentry cases and leave KPROBE REENTER as the unrecoverable nested reentry case.
This change also requires saving saved irqflag in struct prev kprobe. When a nested kprobe calls kprobes save local irqflag(), it overwrites kcb->saved irqflag with the currently masked DAIF value, losing the outer kprobe's original DAIF state. Without this fix, when the outer kprobe's single-step finishes, kprobes restore local irqflag() applies the wrong DAIF mask and leaves interrupts permanently disabled.
Extend struct prev kprobe with a saved irqflag field and save/restore it alongside kp and status. This ensures the outer kprobe's original interrupt state is preserved across reentry.
This mirrors the x86 fix in commit 6a5022a56ac3 ("kprobes/x86: Allow to handle reentered kprobe on single-stepping").
Vendors
Affected products
Related identifiers
Found an issue in the description? Have something to add? Feel free to write us 👾