UBUNTU-CVE-2024-27050
In the Linux kernel, the following vulnerability has been resolved: libbpf: Use OPTS_SET() macro in bpf_xdp_query() When the feature_flags and xdp_zc_max_segs fields were added to the libbpf bpf_xdp_query_opts, the code writing them did not use the OPTS_SET() macro. This causes libbpf to write to those fields unconditionally, which means that programs compiled against an older version of libbpf (with a smaller size of the bpf_xdp_query_opts struct) will have its stack corrupted by libbpf writing out of bounds. The patch adding the feature_flags field has an early bail out if the feature_flags field is not part of the opts struct (via the OPTS_HAS) macro, but the patch adding xdp_zc_max_segs does not. For consistency, this fix just changes the assignments to both fields to use the OPTS_SET() macro.
02 / AFFECTED SOFTWARE
Affected packages
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
6 explicit affected versions
4 explicit affected versions
3 explicit affected versions
7 explicit affected versions
35 explicit affected versions
18 explicit affected versions
5 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
7 explicit affected versions
21 explicit affected versions
16 explicit affected versions
10 explicit affected versions
5 explicit affected versions
7 explicit affected versions
12 explicit affected versions
12 explicit affected versions
1 explicit affected versions
7 explicit affected versions
12 explicit affected versions
12 explicit affected versions
37 explicit affected versions
10 explicit affected versions
26 explicit affected versions
13 explicit affected versions
29 explicit affected versions
13 explicit affected versions
33 explicit affected versions
23 explicit affected versions
10 explicit affected versions
12 explicit affected versions
7 explicit affected versions
12 explicit affected versions
10 explicit affected versions
26 explicit affected versions
6 explicit affected versions
6 explicit affected versions
13 explicit affected versions
5 explicit affected versions
16 explicit affected versions
6 explicit affected versions
3 explicit affected versions
51 explicit affected versions
3 explicit affected versions
12 explicit affected versions
27 explicit affected versions
8 explicit affected versions
5 explicit affected versions
8 explicit affected versions
10 explicit affected versions
2 explicit affected versions
13 explicit affected versions
7 explicit affected versions
10 explicit affected versions
12 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
26 explicit affected versions
37 explicit affected versions
6 explicit affected versions
38 explicit affected versions
9 explicit affected versions
11 explicit affected versions
7 explicit affected versions
4 explicit affected versions
43 explicit affected versions
10 explicit affected versions
8 explicit affected versions
1 explicit affected versions
14 explicit affected versions
4 explicit affected versions
1 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: libbpf: Use OPTS_SET() macro in bpf_xdp_query() When the feature_flags and xdp_zc_max_segs fields were added to the libbpf bpf_xdp_query_opts, the code writing them did not use the OPTS_SET() macro. This causes libbpf to write to those fields unconditionally, which means that programs compiled against an older version of libbpf (with a smaller size of the bpf_xdp_query_opts struct) will have its stack corrupted by libbpf writing out of bounds. The patch adding the feature_flags field has an early bail out if the feature_flags field is not part of the opts struct (via the OPTS_HAS) macro, but the patch adding xdp_zc_max_segs does not. For consistency, this fix just changes the assignments to both fields to use the OPTS_SET() macro.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/92a871ab9fa59a74d013bc04f321026a057618e7
- https://git.kernel.org/stable/c/682ddd62abd4bdcee7584246903e7a2df005fe0d
- https://git.kernel.org/stable/c/92a871ab9fa59a74d013bc04f321026a057618e7
- https://git.kernel.org/stable/c/cd3be9843247edb8fc6fcd8d8237cbce2bc19f5e
- https://git.kernel.org/stable/c/fa5bef5e80c6a3321b2b1a7070436f3bc5daf07c
- https://ubuntu.com/security/CVE-2024-27050
- https://ubuntu.com/security/notices/USN-6816-1
- https://ubuntu.com/security/notices/USN-6817-1
- https://ubuntu.com/security/notices/USN-6817-2
- https://ubuntu.com/security/notices/USN-6817-3
- https://ubuntu.com/security/notices/USN-6878-1
- https://www.cve.org/CVERecord?id=CVE-2024-27050