CVE-2023-54173: bpf: Disable preemption in bpf_event_output
In the Linux kernel, the following vulnerability has been resolved:
bpf: Disable preemption in bpf_event_output
We received report [1] of kernel crash, which is caused by
using nesting protection without disabled preemption.
The bpf_event_output can be called by programs executed by
bpf_prog_run_array_cg function that disabled 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:
BUG: kernel NULL pointer dereference, address: 0000000000000001
#PF: supervisor instruction fetch in kernel mode
#PF: error_code(0x0010) - not-present page
...
? perf_output_sample+0x12a/0x9a0
? finish_task_switch.isra.0+0x81/0x280
? perf_event_output+0x66/0xa0
? bpf_event_output+0x13a/0x190
? bpf_event_output_data+0x22/0x40
? bpf_prog_dfc84bbde731b257_cil_sock4_connect+0x40a/0xacb
? xa_load+0x87/0xe0
? __cgroup_bpf_run_filter_sock_addr+0xc1/0x1a0
? release_sock+0x3e/0x90
? sk_setsockopt+0x1a1/0x12f0
? udp_pre_connect+0x36/0x50
? inet_dgram_connect+0x93/0xa0
? __sys_connect+0xb4/0xe0
? udp_setsockopt+0x27/0x40
? __pfx_udp_push_pending_frames+0x10/0x10
? __sys_setsockopt+0xdf/0x1a0
? __x64_sys_connect+0xf/0x20
? do_syscall_64+0x3a/0x90
? entry_SYSCALL_64_after_hwframe+0x72/0xdc
Fixing this by disabling preemption in bpf_event_output.
[1] https://github.com/cilium/cilium/issues/26756
Security readout for executives and security teams
Plain-English summary
A Linux kernel concurrency flaw can let two tasks reuse the same performance-event buffer, causing a kernel crash. The supplied CVSS rates it high at 7.8 and requires local, low-privileged access. The documented impact is primarily service disruption; broader confidentiality and integrity impacts are scored but not demonstrated in the supplied description.
Executive priority
Treat as a high-priority stability and local-security update, especially for shared, containerized, or BPF-intensive Linux systems. Patch through supported distribution channels after normal compatibility testing. Escalate faster where local users or workloads are less trusted, while avoiding claims of active exploitation unsupported by the supplied evidence.
Technical view
Preemption remained enabled when bpf_event_output used nesting protection from BPF programs run through the cgroup path. A task switch could allow two tasks to share perf_sample_data, leading to corruption and a NULL-pointer kernel crash. The Linux fix disables preemption within bpf_event_output.
Likely exposure
Potential exposure exists on systems running the listed affected Linux kernel versions where relevant cgroup BPF programs can invoke event output. The supplied version data is ambiguous and includes commit identifiers and isolated releases, so administrators should map distribution kernels against the referenced stable fixes rather than rely solely on version strings.
Exploitation context
The CVSS vector indicates local access, low privileges, low complexity, and no user interaction. The supplied record is not in KEV and provides no evidence of active exploitation. It documents a reported kernel crash involving Cilium, but does not establish reliable malicious exploitation or remote reachability.
Researcher notes
The demonstrated failure is a preemption-sensitive race around nesting protection and shared perf_sample_data. Stable commits are supplied, but exact affected and fixed ranges are not clearly expressed. Researchers should distinguish the documented denial-of-service crash from the CVSS confidentiality and integrity ratings, which are not substantiated by a described exploitation path here.
Mitigation direction
Install a vendor-supported kernel containing the applicable referenced stable fix.
Review Linux distribution advisories to map backported fixes to installed kernel packages.
Prioritize systems using cgroup BPF programs and performance-event output.
Restrict unnecessary local access and BPF capabilities while remediation is pending.
Validation and detection
Record installed kernel package versions across Linux hosts.
Compare vendor kernel changelogs with the five referenced stable commits.
Identify workloads using cgroup BPF, including relevant Cilium deployments.
Check kernel logs for bpf_event_output, perf_event_output, NULL dereferences, or unexplained crashes.
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-54173 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.
1CVSS vectors
3Timeline events
0ADP providers
6Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.