CVE-2024-56675
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Summary
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.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < 9245459a992d22fe0e92e988f49db1fec82c184a | affected |
| Linux | Linux | 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < f9f85df30118f3f4112761e6682fc60ebcce23e5 | affected |
| Linux | Linux | 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < 9b53d2c2a38a1effc341d99be3f99fa7ef17047d | affected |
| Linux | Linux | 8c7dcb84e3b744b2b70baa7a44a9b1881c33a9c9 < ef1b808e3b7c98612feceedf985c2fbbeb28f956 | affected |
| Linux | Linux | 6.0 | affected |
| Linux | Linux | 0 < 6.0 | unaffected |
| Linux | Linux | 6.1.121 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.67 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.6 <= 6.12.* | unaffected |
| Linux | Linux | 6.13 <= * | unaffected |
Weaknesses
ADP Enrichment
CISA ADP Vulnrichment
- SSVC:
- Exploitation: none
- Automatable: no
- Technical Impact: total
CVE Program Container
Additional References
References
- https://git.kernel.org/stable/c/9245459a992d22fe0e92e988f49db1fec82c184a
- https://git.kernel.org/stable/c/f9f85df30118f3f4112761e6682fc60ebcce23e5
- https://git.kernel.org/stable/c/9b53d2c2a38a1effc341d99be3f99fa7ef17047d
- https://git.kernel.org/stable/c/ef1b808e3b7c98612feceedf985c2fbbeb28f956
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.