Vulnerability Details CVE-2025-39917
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.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 3.6%
CVSS Severity
CVSS v3 Score 7.8
Products affected by CVE-2025-39917
-
cpe:2.3:o:linux:linux_kernel:6.10
-
cpe:2.3:o:linux:linux_kernel:6.10.0
-
cpe:2.3:o:linux:linux_kernel:6.10.1
-
cpe:2.3:o:linux:linux_kernel:6.10.10
-
cpe:2.3:o:linux:linux_kernel:6.10.11
-
cpe:2.3:o:linux:linux_kernel:6.10.12
-
cpe:2.3:o:linux:linux_kernel:6.10.13
-
cpe:2.3:o:linux:linux_kernel:6.10.14
-
cpe:2.3:o:linux:linux_kernel:6.10.2
-
cpe:2.3:o:linux:linux_kernel:6.10.3
-
cpe:2.3:o:linux:linux_kernel:6.10.4
-
cpe:2.3:o:linux:linux_kernel:6.10.5
-
cpe:2.3:o:linux:linux_kernel:6.10.6
-
cpe:2.3:o:linux:linux_kernel:6.10.7
-
cpe:2.3:o:linux:linux_kernel:6.10.8
-
cpe:2.3:o:linux:linux_kernel:6.10.9
-
cpe:2.3:o:linux:linux_kernel:6.11
-
cpe:2.3:o:linux:linux_kernel:6.11.1
-
cpe:2.3:o:linux:linux_kernel:6.11.10
-
cpe:2.3:o:linux:linux_kernel:6.11.11
-
cpe:2.3:o:linux:linux_kernel:6.11.2
-
cpe:2.3:o:linux:linux_kernel:6.11.3
-
cpe:2.3:o:linux:linux_kernel:6.11.4
-
cpe:2.3:o:linux:linux_kernel:6.11.5
-
cpe:2.3:o:linux:linux_kernel:6.11.6
-
cpe:2.3:o:linux:linux_kernel:6.11.7
-
cpe:2.3:o:linux:linux_kernel:6.11.8
-
cpe:2.3:o:linux:linux_kernel:6.11.9
-
cpe:2.3:o:linux:linux_kernel:6.12
-
cpe:2.3:o:linux:linux_kernel:6.12.1
-
cpe:2.3:o:linux:linux_kernel:6.12.10
-
cpe:2.3:o:linux:linux_kernel:6.12.11
-
cpe:2.3:o:linux:linux_kernel:6.12.12
-
cpe:2.3:o:linux:linux_kernel:6.12.13
-
cpe:2.3:o:linux:linux_kernel:6.12.14
-
cpe:2.3:o:linux:linux_kernel:6.12.15
-
cpe:2.3:o:linux:linux_kernel:6.12.16
-
cpe:2.3:o:linux:linux_kernel:6.12.17
-
cpe:2.3:o:linux:linux_kernel:6.12.18
-
cpe:2.3:o:linux:linux_kernel:6.12.19
-
cpe:2.3:o:linux:linux_kernel:6.12.2
-
cpe:2.3:o:linux:linux_kernel:6.12.20
-
cpe:2.3:o:linux:linux_kernel:6.12.21
-
cpe:2.3:o:linux:linux_kernel:6.12.22
-
cpe:2.3:o:linux:linux_kernel:6.12.23
-
cpe:2.3:o:linux:linux_kernel:6.12.24
-
cpe:2.3:o:linux:linux_kernel:6.12.25
-
cpe:2.3:o:linux:linux_kernel:6.12.26
-
cpe:2.3:o:linux:linux_kernel:6.12.27
-
cpe:2.3:o:linux:linux_kernel:6.12.28
-
cpe:2.3:o:linux:linux_kernel:6.12.29
-
cpe:2.3:o:linux:linux_kernel:6.12.3
-
cpe:2.3:o:linux:linux_kernel:6.12.30
-
cpe:2.3:o:linux:linux_kernel:6.12.31
-
cpe:2.3:o:linux:linux_kernel:6.12.32
-
cpe:2.3:o:linux:linux_kernel:6.12.33
-
cpe:2.3:o:linux:linux_kernel:6.12.34
-
cpe:2.3:o:linux:linux_kernel:6.12.35
-
cpe:2.3:o:linux:linux_kernel:6.12.36
-
cpe:2.3:o:linux:linux_kernel:6.12.37
-
cpe:2.3:o:linux:linux_kernel:6.12.38
-
cpe:2.3:o:linux:linux_kernel:6.12.39
-
cpe:2.3:o:linux:linux_kernel:6.12.4
-
cpe:2.3:o:linux:linux_kernel:6.12.40
-
cpe:2.3:o:linux:linux_kernel:6.12.41
-
cpe:2.3:o:linux:linux_kernel:6.12.42
-
cpe:2.3:o:linux:linux_kernel:6.12.43
-
cpe:2.3:o:linux:linux_kernel:6.12.44
-
cpe:2.3:o:linux:linux_kernel:6.12.45
-
cpe:2.3:o:linux:linux_kernel:6.12.46
-
cpe:2.3:o:linux:linux_kernel:6.12.47
-
cpe:2.3:o:linux:linux_kernel:6.12.5
-
cpe:2.3:o:linux:linux_kernel:6.12.6
-
cpe:2.3:o:linux:linux_kernel:6.12.7
-
cpe:2.3:o:linux:linux_kernel:6.12.8
-
cpe:2.3:o:linux:linux_kernel:6.12.9
-
cpe:2.3:o:linux:linux_kernel:6.13
-
cpe:2.3:o:linux:linux_kernel:6.13.1
-
cpe:2.3:o:linux:linux_kernel:6.13.10
-
cpe:2.3:o:linux:linux_kernel:6.13.11
-
cpe:2.3:o:linux:linux_kernel:6.13.12
-
cpe:2.3:o:linux:linux_kernel:6.13.2
-
cpe:2.3:o:linux:linux_kernel:6.13.3
-
cpe:2.3:o:linux:linux_kernel:6.13.4
-
cpe:2.3:o:linux:linux_kernel:6.13.5
-
cpe:2.3:o:linux:linux_kernel:6.13.6
-
cpe:2.3:o:linux:linux_kernel:6.13.7
-
cpe:2.3:o:linux:linux_kernel:6.13.8
-
cpe:2.3:o:linux:linux_kernel:6.13.9
-
cpe:2.3:o:linux:linux_kernel:6.14
-
cpe:2.3:o:linux:linux_kernel:6.14.1
-
cpe:2.3:o:linux:linux_kernel:6.14.10
-
cpe:2.3:o:linux:linux_kernel:6.14.11
-
cpe:2.3:o:linux:linux_kernel:6.14.2
-
cpe:2.3:o:linux:linux_kernel:6.14.3
-
cpe:2.3:o:linux:linux_kernel:6.14.4
-
cpe:2.3:o:linux:linux_kernel:6.14.5
-
cpe:2.3:o:linux:linux_kernel:6.14.6
-
cpe:2.3:o:linux:linux_kernel:6.14.7
-
cpe:2.3:o:linux:linux_kernel:6.14.8
-
cpe:2.3:o:linux:linux_kernel:6.14.9
-
cpe:2.3:o:linux:linux_kernel:6.15
-
cpe:2.3:o:linux:linux_kernel:6.15.1
-
cpe:2.3:o:linux:linux_kernel:6.15.10
-
cpe:2.3:o:linux:linux_kernel:6.15.11
-
cpe:2.3:o:linux:linux_kernel:6.15.2
-
cpe:2.3:o:linux:linux_kernel:6.15.3
-
cpe:2.3:o:linux:linux_kernel:6.15.4
-
cpe:2.3:o:linux:linux_kernel:6.15.5
-
cpe:2.3:o:linux:linux_kernel:6.15.6
-
cpe:2.3:o:linux:linux_kernel:6.15.7
-
cpe:2.3:o:linux:linux_kernel:6.15.8
-
cpe:2.3:o:linux:linux_kernel:6.15.9
-
cpe:2.3:o:linux:linux_kernel:6.16
-
cpe:2.3:o:linux:linux_kernel:6.16.1
-
cpe:2.3:o:linux:linux_kernel:6.16.2
-
cpe:2.3:o:linux:linux_kernel:6.16.3
-
cpe:2.3:o:linux:linux_kernel:6.16.4
-
cpe:2.3:o:linux:linux_kernel:6.16.5
-
cpe:2.3:o:linux:linux_kernel:6.16.6
-
cpe:2.3:o:linux:linux_kernel:6.16.7
-
cpe:2.3:o:linux:linux_kernel:6.17