bpf: Fix UAF via mismatching bpf_prog/attachment RCU flavors (Linux Linux)

CVE-2024-56675
HIGH 7.8

At a glance

Source
NVD
EPSS
EPSS 0.23 % · percentile 14 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Modified

Description

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix UAF via mismatching bpf_prog/attachment RCU flavors Uprobes always use bpf_prog_run_array_uprobe() under tasks-trace-RCU protection. But it is possible to attach a non-sleepable BPF program to a uprobe, and non-sleepable BPF programs are freed via normal RCU (see __bpf_prog_put_noref()). This leads to UAF of the bpf_prog because a normal RCU grace period does not imply a tasks-trace-RCU grace period. Fix it by explicitly waiting for a tasks-trace-RCU grace period after removing the attachment of a bpf_prog to a perf_event.

Weaknesses (CWE)

References

Scores

VersionScoreVectorScored by
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HCISA-ADP
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · nvd@nist.gov (Primary)
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)

European references

CERT-FR advisories

Affected configurations (NVD CPE)

Affected products

ProductVersions
Linux · Linuxaffected 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < 9245459a992d22fe0e92e988f49db1fec82c184a ; affected 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < f9f85df30118f3f4112761e6682fc60ebcce23e5 ; affected 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < 9b53d2c2a38a1effc341d99be3f99fa7ef17047d ; affected 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < ef1b808e3b7c98612feceedf985c2fbbeb28f956
Linux · Linuxaffected 6.0 ; unaffected 0 < 6.0 ; unaffected 6.1.121 ≤ 6.1.* ; unaffected 6.6.67 ≤ 6.6.* ; unaffected 6.12.6 ≤ 6.12.* ; unaffected 6.13 ≤ *

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD