CVE-2026-89902

CVE-2026-89902

High · published September 16, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
6.6
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

LoongArch: Avoid preempt count underflow without probe

LoongArch uses break 11 for the breakpoint placed after an instruction

that Kprobes executes out of line. Since userspace can issue the same

break instruction, do_bp() can reach kprobe_singlestep_handler() when

there is no current probe.

The handler actually returns false in this case, but it first calls

preempt_enable_no_resched(). The corresponding preempt_disable() is done

by kprobe_breakpoint_handler() on a real Kprobe hit, so it has not run

here. As a result, an ordinary userspace breakpoint (code 11) underflows

the current task's preempt count.

This also makes in_interrupt() return true until the task schedules. One

visible consequence is the socket cgroup attribution: cgroup_sk_alloc()

treats the allocation as interrupt context and assigns the socket to the

root cgroup. A socket opened from the SIGTRAP handler can then avoid a

BPF_CGROUP_INET_SOCK_CREATE policy attached to the task's own cgroup.

Return as soon as kprobe_running() reports no active probe.

The same check has appeared in [PATCH v10 2/4] of the original LoongArch

Kprobes series, but was dropped before the feature reached mainline.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00175 · 6.6th percentile
Published
2026-09-16T15:16Z
References (5)
EPSS history
Timeline
  • 18 SEP 04:02Z
    EPSS moved — → 0%
    epss
  • 16 SEP 10:32Z
    LoongArch: Avoid preempt count underflow without probe
    cvelistv5