CVE-2025-40078
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Explicitly check accesses to bpf_sock_addr
Syzkaller found a kernel warning on the following sock_addr program:
0: r0 = 0
1: r2 = *(u32 *)(r1 +60)
2: exit
which triggers:
verifier bug: error during ctx access conversion (0)
This is happening because offset 60 in bpf_sock_addr corresponds to an implicit padding of 4 bytes, right after msg_src_ip4. Access to this padding isn't rejected in sock_addr_is_valid_access and it thus later fails to convert the access.
This patch fixes it by explicitly checking the various fields of bpf_sock_addr in sock_addr_is_valid_access.
I checked the other ctx structures and is_valid_access functions and didn't find any other similar cases. Other cases of (properly handled) padding are covered in new tests in a subsequent patch.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < de44cdc50d2dce8718cb57deddf9cf1be9a7759f | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < 76e04bbb4296fb6eac084dbfc27e02ccc744db3e | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < 6d8b1a21fd5c34622b0c3893c61e4a38d8ba53ec | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < 4f00858cd9bbbdf67159e28b85a8ca9e77c83622 | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < cdeafacb4f9ff261a96baef519e29480fd7b1019 | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < fe9d33f0470350558cb08cecb54cf2267b3a45d2 | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < ad8b4fe5617e3c85fc23267f02500c4f3bf0ff69 | affected |
| Linux | Linux | 1cedee13d25ab118d325f95588c1a084e9317229 < 6fabca2fc94d33cdf7ec102058983b086293395f | affected |
| Linux | Linux | 4.18 | affected |
| Linux | Linux | 0 < 4.18 | unaffected |
| Linux | Linux | 5.4.301 <= 5.4.* | unaffected |
| Linux | Linux | 5.10.246 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.195 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.156 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.112 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.53 <= 6.12.* | unaffected |
| Linux | Linux | 6.17.3 <= 6.17.* | unaffected |
| Linux | Linux | 6.18 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/de44cdc50d2dce8718cb57deddf9cf1be9a7759f
- https://git.kernel.org/stable/c/76e04bbb4296fb6eac084dbfc27e02ccc744db3e
- https://git.kernel.org/stable/c/6d8b1a21fd5c34622b0c3893c61e4a38d8ba53ec
- https://git.kernel.org/stable/c/4f00858cd9bbbdf67159e28b85a8ca9e77c83622
- https://git.kernel.org/stable/c/cdeafacb4f9ff261a96baef519e29480fd7b1019
- https://git.kernel.org/stable/c/fe9d33f0470350558cb08cecb54cf2267b3a45d2
- https://git.kernel.org/stable/c/ad8b4fe5617e3c85fc23267f02500c4f3bf0ff69
- https://git.kernel.org/stable/c/6fabca2fc94d33cdf7ec102058983b086293395f
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.