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

bpf: Mark syscall helpers as sleepable

bpf_sys_bpf() executes the bpf(2) syscall body, which can take mutexes,
allocate with GFP_KERNEL, and wait for an RCU grace period.
bpf_sys_close() reaches close_fd() and filp_close(), which can sleep as
well.

Both helpers are limited to BPF_PROG_TYPE_SYSCALL, whose main program is
sleepable. That does not make every callback sleepable: a syscall program
can register a bpf_timer callback, and the verifier checks that callback
in a non-sleepable context while retaining the syscall helper set.

Without .might_sleep on the prototypes, such a callback can invoke
bpf_sys_bpf() from hrtimer softirq context and trigger a
scheduling-while-atomic failure. bpf_sys_close() is exposed through the
same missing context check.

Set .might_sleep on both prototypes so the existing helper-context check
rejects them from timer callbacks and other atomic regions. Calls from the
sleepable main body remain valid.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Scheduling-while-atomic causing system crash (Denial of Service)
Action: Apply patch
AI Analysis

Impact

The vulnerability arises from missing .might_sleep on two kernel BPF helper prototypes, bpf_sys_bpf() and bpf_sys_close(). These helpers perform operations that can sleep, such as taking mutexes, allocating memory with GFP_KERNEL, or waiting for RCU grace periods. When a BPF program registers a timer callback, the verifier checks the callback in a non‑sleepable context but still allows the helper set. If the helper is invoked from a timer callback or other atomic region, the kernel attempts a scheduling operation while in an atomic context, causing a scheduling‑while‑atomic failure. This race can lead to kernel panics or loss of system stability, effectively a denial of service.

Affected Systems

All Linux kernel implementations that have not incorporated the commit which added .might_sleep to the helper prototypes are affected. This includes all publicly released kernels prior to the inclusion of the fix. Vendor products that ship stock Linux kernels without the patch are susceptible. No specific version range is listed, so any kernel built from sources before the commit is considered vulnerable unless updated.

Risk and Exploitability

The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog, indicating no confirmed public exploitation yet. Despite this, the flaw involves kernel‑level code and could be leveraged by an attacker capable of deploying a malicious BPF program that registers a timer callback, which is a privileged capability. The attack would require local access or compromised privileged process. If exploited, the result could be a kernel panic, memory corruption, or a reboot – all leading to denial of service. The missing attack vector is inferred from the commit context; thus the likely vector is local execution of a crafted BPF program.

Generated by OpenCVE AI on September 25, 2026 at 15:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the kernel to include the patch that marks bpf_sys_bpf and bpf_sys_close as .might_sleep.
  • If the kernel cannot be updated immediately, restrict or disable BPF program types that register timer callbacks, especially BPF_PROG_TYPE_SYSCALL.
  • Continuously monitor kernel logs for scheduling‑while‑atomic warnings and configure alerts for any such events.

Generated by OpenCVE AI on September 25, 2026 at 15:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 16:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: Mark syscall helpers as sleepable bpf_sys_bpf() executes the bpf(2) syscall body, which can take mutexes, allocate with GFP_KERNEL, and wait for an RCU grace period. bpf_sys_close() reaches close_fd() and filp_close(), which can sleep as well. Both helpers are limited to BPF_PROG_TYPE_SYSCALL, whose main program is sleepable. That does not make every callback sleepable: a syscall program can register a bpf_timer callback, and the verifier checks that callback in a non-sleepable context while retaining the syscall helper set. Without .might_sleep on the prototypes, such a callback can invoke bpf_sys_bpf() from hrtimer softirq context and trigger a scheduling-while-atomic failure. bpf_sys_close() is exposed through the same missing context check. Set .might_sleep on both prototypes so the existing helper-context check rejects them from timer callbacks and other atomic regions. Calls from the sleepable main body remain valid.
Title bpf: Mark syscall helpers as sleepable
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 Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:24:04.190Z

Reserved: 2026-09-25T10:19:56.072Z

Link: CVE-2026-98058

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:34.767

Modified: 2026-09-25T11:17:34.767

Link: CVE-2026-98058

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T16:00:18Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')