CVE-2023-54303: bpf: Disable preemption in bpf_perf_event_output
In the Linux kernel, the following vulnerability has been resolved:
bpf: Disable preemption in bpf_perf_event_output
The nesting protection in bpf_perf_event_output relies on disabled
preemption, which is guaranteed for kprobes and tracepoints.
However bpf_perf_event_output can be also called from uprobes context
through bpf_prog_run_array_sleepable function which disables migration,
but keeps preemption enabled.
This can cause task to be preempted by another one inside the nesting
protection and lead eventually to two tasks using same perf_sample_data
buffer and cause crashes like:
kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
BUG: unable to handle page fault for address: ffffffff82be3eea
...
Call Trace:
? __die+0x1f/0x70
? page_fault_oops+0x176/0x4d0
? exc_page_fault+0x132/0x230
? asm_exc_page_fault+0x22/0x30
? perf_output_sample+0x12b/0x910
? perf_event_output+0xd0/0x1d0
? bpf_perf_event_output+0x162/0x1d0
? bpf_prog_c6271286d9a4c938_krava1+0x76/0x87
? __uprobe_perf_func+0x12b/0x540
? uprobe_dispatcher+0x2c4/0x430
? uprobe_notify_resume+0x2da/0xce0
? atomic_notifier_call_chain+0x7b/0x110
? exit_to_user_mode_prepare+0x13e/0x290
? irqentry_exit_to_user_mode+0x5/0x30
? asm_exc_int3+0x35/0x40
Fixing this by disabling preemption in bpf_perf_event_output.
Security readout for executives and security teams
Plain-English summary
CVE-2023-54303 is a Linux kernel bug in BPF performance event output handling. Under specific BPF and uprobe conditions, two tasks can reuse the same kernel perf buffer, causing kernel crashes. The sources describe reliability impact and a kernel fix, but do not provide CVSS, confirmed exploitation, or distribution-specific advisories.
Executive priority
Prioritize normal kernel patch management, with higher urgency for shared systems, observability-heavy hosts, and environments where local users can run BPF tooling. Current sources do not justify emergency response based on exploitation, but kernel crash potential creates operational risk.
Technical view
The issue is in bpf_perf_event_output. Its nesting protection assumes preemption is disabled. That holds for kprobes and tracepoints, but sleepable uprobe paths disable migration while leaving preemption enabled. A preemption window can allow shared perf_sample_data buffer use across tasks, leading to kernel faults. The fix disables preemption inside bpf_perf_event_output.
Likely exposure
Exposure is limited to Linux systems running affected kernel versions with BPF programs using bpf_perf_event_output from relevant uprobe contexts. The bundle identifies Linux kernel affected versions including 6.0, 6.1.45, 6.4.10, and 6.5, but distribution mapping is not provided.
Exploitation context
The bundle does not show active exploitation, KEV listing, exploit code, or public weaponization. The described impact is kernel crash behavior from a concurrency flaw. Treat exploitation status as unconfirmed unless a vendor or threat-intelligence source later states otherwise.
Researcher notes
The key condition is preemption remaining enabled on the uprobe sleepable path while nesting protection expects it disabled. The public bundle gives crash traces and fix direction, but not a CVSS vector, exploitability analysis, privilege requirements, or distro-specific affected package data.
Mitigation direction
Apply the relevant Linux stable kernel fix from your vendor or upstream stable branch.
Prioritize hosts that allow BPF use by untrusted or semi-trusted users.
Review kernel versions against vendor advisories before assuming package-level exposure.
If immediate patching is blocked, check vendor guidance for supported mitigations.
Track distribution-specific backports because fixed package versions may not match upstream versions.
Validation and detection
Inventory Linux kernel versions across servers, containers hosts, and developer workstations.
Identify systems using BPF programs, uprobes, tracing, observability agents, or performance tooling.
Confirm whether vendor kernels include the referenced upstream stable commits.
Review crash logs for page faults involving perf_event_output or bpf_perf_event_output.
Verify remediation by confirming the installed kernel contains the vendor backport or fixed release.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-54303 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
4Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 30, 2025, 12:23 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.