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: 4.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via kernel state corruption that permanently disables interrupts
Action: Patch
AI Analysis

Impact

The flaw is in the arm64 kprobe mechanism of the Linux kernel. When a second kprobe hits while the first is in the KPROBE_HIT_SS state, the kernel treats this as an unrecoverable nested re‑entry and overwrites the outer probe’s saved kernel state, including the interrupt flag. This state corruption causes interrupts to remain disabled after the outer probe finishes, leading to a system hang or crash. The vulnerability is identified as CWE-1265, an improper operation of a component after a state change.

Affected Systems

All arm64 builds of the Linux kernel that lack the recent commit adding recoverable re‑entry handling are affected. The vendor product is generic Linux; no specific version range is supplied, so administrators should confirm whether their kernel includes the fix or uses a newer release that incorporates the patch.

Risk and Exploitability

The CVSS score of 4.4 indicates moderate severity, while the EPSS score of < 1% suggests a very low probability of exploitation in the wild. The flaw is not listed in CISA’s KEV catalog. To trigger the vulnerability an attacker requires the ability to cause a kprobe single‑step re‑entry, which typically entails local privilege or a debugging/performance‑monitoring environment. Based on the description, the attack vector is inferred to be local, privileged, or a dedicated debugging scenario. If exploited, the kernel’s persistent interrupt disable would result in a denial of service to the entire system.

Generated by OpenCVE AI on October 27, 2026 at 11:07 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes the kprobe re‑entry patch or merge the relevant commit the upstream fix.
  • If a timely update is unavailable, refrain from using kprobes, perf, or any single‑stepping functionality on arm64 systems until the patch is applied.
  • After applying the update or disabling the affected features, monitor system logs for abnormal interrupt behavior and verify that kernel interrupts resume normal operation.

Generated by OpenCVE AI on October 27, 2026 at 11:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8961-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9022-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9023-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9024-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9025-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9026-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9029-1 Linux kernel (Raspberry Pi) vulnerabilities
Ubuntu USN Ubuntu USN USN-9039-1 Linux kernel (Azure CVM) vulnerabilities
Ubuntu USN Ubuntu USN USN-9040-1 Linux kernel (Low Latency NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-9066-1 Linux kernel (HWE) vulnerabilities
History

Tue, 27 Oct 2026 09:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Tue, 27 Oct 2026 04:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1265
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


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-26T06:56:13.106Z

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-26T07:17:13.870

Link: CVE-2026-98888

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-23T00:00:00Z

Links: CVE-2026-98888 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-27T11:15:15Z

Weaknesses
  • CWE-1265

    Unintended Reentrant Invocation of Non-reentrant Code Via Nested Calls