What’s Vulnerable › Vulnerabilities
CVE-2025-39917: bpf: Fix out-of-bounds dynptr write in bpf_crypto_crypt
- Severity: high (CVSS 7.8 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.2% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2025-10-01 · updated 2026-10-19
- Weakness: CWE-787
Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix out-of-bounds dynptr write in bpf_crypto_crypt Stanislav reported that in bpf_crypto_crypt() the destination dynptr's size is not validated to be at least as large as the source dynptr's size before calling into the crypto backend with 'len = src_len'. This can result in an OOB write when the destination is smaller than the source. Concretely, in mentioned function, psrc and pdst are both linear buffers fetched from each dynptr: psrc = __bpf_dynptr_data(src, src_len); [...] pdst = __bpf_dynptr_data_rw(dst, dst_len); [...] err = decrypt ? ctx->type->decrypt(ctx->tfm, psrc, pdst, src_len, piv) : ctx->type->encrypt(ctx->tfm, psrc, pdst, src_len, piv); The crypto backend expects pdst to be large enough with a src_len length that can be written. Add an additional src_len > dst_len check and bail out if it's the case. Note that these kfuncs are accessible under root privileges only.
Affected products
- Linux kernel: from 6.10 before 6.12.48; from 6.13 before 6.16.8; 6.17-rc1, 6.17-rc2, 6.17-rc3, 6.17-rc4, 6.17-rc5 — fixed in 6.12.48, 6.16.8
How to fix
Upgrade to a fixed version: Linux kernel 6.12.48, 6.16.8. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/0126358df12d6f476f79251d9c398ac5c1b3062d
- https://git.kernel.org/stable/c/c4be24ef0510c146dca4671effb127e97631534b
- https://git.kernel.org/stable/c/f9bb6ffa7f5ad0f8ee0f53fc4a10655872ee4a14
Get alerted when CVE-2025-39917 or the next vulnerability affects your stack