Linux: bpf: Check params size before reading reserved fields
What fixes it
- 86a0e945fb645ea90233fde239cd2de79f01974cLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
bpf: Check params size before reading reserved fields
bpf_crypto_ctx_create() is a kfunc whose second argument is declared with the __sz annotation, so the verifier only guarantees that params__sz bytes of params are valid. The function nevertheless reads params->reserved[0] and params->reserved[1] (offsets 14 and 15) before comparing params__sz against the size of struct bpf_crypto_params, so a BPF program can pass a shorter buffer and have the kernel read past the region that was validated for it.
Move the size check in front of the reserved field reads.
Text from CVE List
Affected versions 10
- Linuxaffected: 3e1c6f35409f9e447bf37f64840f5b65576bfb78 before e03253f5d65ebcd2a6d479f140c3bd9c7e4fb84aCVE List
- Linuxaffected: 3e1c6f35409f9e447bf37f64840f5b65576bfb78 before cd12d3e08620257fbcaa262785d7f4b9473afc7aCVE List
- Linuxaffected: 3e1c6f35409f9e447bf37f64840f5b65576bfb78 before 86a0e945fb645ea90233fde239cd2de79f01974cCVE List
- Linuxaffected: 3e1c6f35409f9e447bf37f64840f5b65576bfb78 before a11212910cf09b2fe8db9afa41ef60c4f81879c5CVE List
- Linuxaffected: 6.10CVE List
- Linuxunaffected: all versions before 6.10CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 4
- git.kernel.org/stable/c/e03253f5d65ebcd2a6d479f140c3bd9c7e4fb84aReferencevia CVE List
- git.kernel.org/stable/c/cd12d3e08620257fbcaa262785d7f4b9473afc7aReferencevia CVE List
- git.kernel.org/stable/c/86a0e945fb645ea90233fde239cd2de79f01974cReferencevia CVE List
- git.kernel.org/stable/c/a11212910cf09b2fe8db9afa41ef60c4f81879c5Referencevia CVE List