CVE-2023-54303

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-54303
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54303.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-54303
Downstream
Published
2025-12-30T12:23:37.827Z
Modified
2025-12-31T00:44:49.140398Z
Summary
bpf: Disable preemption in bpf_perf_event_output
Details

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

bpf: Disable preemption in bpfperfevent_output

The nesting protection in bpfperfevent_output relies on disabled preemption, which is guaranteed for kprobes and tracepoints.

However bpfperfeventoutput can be also called from uprobes context through bpfprogrunarray_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 perfsampledata 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 ? pagefaultoops+0x176/0x4d0 ? excpagefault+0x132/0x230 ? asmexcpagefault+0x22/0x30 ? perfoutputsample+0x12b/0x910 ? perfeventoutput+0xd0/0x1d0 ? bpfperfeventoutput+0x162/0x1d0 ? bpfprogc6271286d9a4c938krava1+0x76/0x87 ? _uprobeperffunc+0x12b/0x540 ? uprobedispatcher+0x2c4/0x430 ? uprobenotifyresume+0x2da/0xce0 ? atomicnotifiercallchain+0x7b/0x110 ? exittousermodeprepare+0x13e/0x290 ? irqentryexittousermode+0x5/0x30 ? asmexc_int3+0x35/0x40

Fixing this by disabling preemption in bpfperfevent_output.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54303.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9
Fixed
3654ed5daf492463c3faa434c7000d45c2da2ace
Fixed
a0ac32cf61e5a76e2429e486925a52ee41dd75e3
Fixed
f2c67a3e60d1071b65848efaa8c3b66c363dd025

Affected versions

v5.*

v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8

v6.*

v6.0
v6.0-rc1
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.39
v6.1.4
v6.1.40
v6.1.41
v6.1.42
v6.1.43
v6.1.44
v6.1.5
v6.1.6
v6.1.7
v6.1.8
v6.1.9
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.2
v6.4.3
v6.4.4
v6.4.5
v6.4.6
v6.4.7
v6.4.8
v6.4.9
v6.5-rc1
v6.5-rc2

Database specific

source

"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54303.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.0.0
Fixed
6.1.45
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.4.10

Database specific

source

"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54303.json"