Description
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").
Published: 2026-10-23
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service via kernel state corruption leading to persistent interrupt disablement
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is a flaw in the Linux kernel arm64 kprobe implementation that incorrectly treats a single‑step re‑entry of a kprobe as unrecoverable. When a second kprobe is hit during single‑stepping, the current kprobe state is overwritten, and the saved interrupt flag is lost, causing interrupts to remain disabled after the outer kprobe finishes. This state corruption can bring the system to a hung or crash condition, effectively denying service for any user or process that relies on the kernel’s ability to handle interrupts during debugging or performance monitoring.

Affected Systems

All Linux kernel arm64 builds prior to the commit that adds support for recoverable re‑entry are affected. The issue is present in the generic Linux vendor product; version information is not specified, so users should verify that their kernel includes the fix or has been updated to a release that contains the patch.

Risk and Exploitability

The CVSS score and EPSS metrics are not available, and the vulnerability is not listed in CISA’s KEV catalog, indicating no confirmed public exploitation. However, the bug requires the ability to trigger a kprobe single‑step re‑entry, which typically implies local privileges or a debugging environment. When triggered, the flaw can cause a denial of service by permanently disabling interrupts, leading to a system freeze or crash. Updating the kernel to a version that incorporates the recent commit is the definitive remediation.

Generated by OpenCVE AI on October 23, 2026 at 14:13 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes the kprobe reentry fix (e.g., merge the commit or use a kernel newer than the patch).
  • If an immediate patch is not available, avoid using kprobes, perf, or single‑stepping on arm64 systems until the fix is applied.
  • After applying the update or disabling the features, monitor kernel logs for any instability and verify that interrupts resume normal operation.

Generated by OpenCVE AI on October 23, 2026 at 14:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Weaknesses CWE-665
Vendors & Products Linux linux

Fri, 23 Oct 2026 12:00:00 +0000

Type Values Removed Values Added
Description 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").
Title arm64: kprobes: Allow reentering kprobes while single-stepping
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-23T11:37:46.984Z

Reserved: 2026-09-25T10:25:14.378Z

Link: CVE-2026-98888

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T12:18:22.583

Modified: 2026-10-23T12:18:22.583

Link: CVE-2026-98888

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T14:15:07Z

Weaknesses