PT-2026-121858
CVE-2026-98888
·
تاريخ النشر
2026-10-23
·
تاريخ التحديث
2026-10-23
الوصف من
الدرجة
N/A
غير متوفرلا تتوفر حاليًا تقييمات أو مقاييس للخطورة. سنحدّث المعلومات المقابلة في الصفحة فور توفرها.
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").
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾