UBUNTU-CVE-2023-1998
The Linux kernel allows userspace processes to enable mitigations by calling prctl with PR_SET_SPECULATION_CTRL which disables the speculation feature as well as by using seccomp. We had noticed that on VMs of at least one major cloud provider, the kernel still left the victim process exposed to attacks in some cases even after enabling the spectre-BTI mitigation with prctl. The same behavior can be observed on a bare-metal machine when forcing the mitigation to IBRS on boot command line. This happened because when plain IBRS was enabled (not enhanced IBRS), the kernel had some logic that determined that STIBP was not needed. The IBRS bit implicitly protects against cross-thread branch target injection. However, with legacy IBRS, the IBRS bit was cleared on returning to userspace, due to performance reasons, which disabled the implicit STIBP and left userspace threads vulnerable to cross-thread branch target injection against which STIBP protects.
02 / AFFECTED SOFTWARE
Affected packages
14 explicit affected versions
22 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
6 explicit affected versions
31 explicit affected versions
17 explicit affected versions
39 explicit affected versions
28 explicit affected versions
17 explicit affected versions
24 explicit affected versions
7 explicit affected versions
25 explicit affected versions
65 explicit affected versions
59 explicit affected versions
5 explicit affected versions
14 explicit affected versions
90 explicit affected versions
12 explicit affected versions
67 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
95 explicit affected versions
1 explicit affected versions
21 explicit affected versions
16 explicit affected versions
22 explicit affected versions
7 explicit affected versions
12 explicit affected versions
15 explicit affected versions
12 explicit affected versions
7 explicit affected versions
57 explicit affected versions
12 explicit affected versions
70 explicit affected versions
78 explicit affected versions
12 explicit affected versions
67 explicit affected versions
161 explicit affected versions
37 explicit affected versions
94 explicit affected versions
5 explicit affected versions
10 explicit affected versions
26 explicit affected versions
13 explicit affected versions
29 explicit affected versions
59 explicit affected versions
13 explicit affected versions
28 explicit affected versions
54 explicit affected versions
27 explicit affected versions
70 explicit affected versions
33 explicit affected versions
23 explicit affected versions
10 explicit affected versions
88 explicit affected versions
11 explicit affected versions
12 explicit affected versions
111 explicit affected versions
7 explicit affected versions
69 explicit affected versions
17 explicit affected versions
9 explicit affected versions
104 explicit affected versions
25 explicit affected versions
124 explicit affected versions
10 explicit affected versions
4 explicit affected versions
111 explicit affected versions
29 explicit affected versions
16 explicit affected versions
28 explicit affected versions
18 explicit affected versions
3 explicit affected versions
65 explicit affected versions
36 explicit affected versions
47 explicit affected versions
64 explicit affected versions
12 explicit affected versions
16 explicit affected versions
4 explicit affected versions
4 explicit affected versions
68 explicit affected versions
5 explicit affected versions
58 explicit affected versions
13 explicit affected versions
24 explicit affected versions
66 explicit affected versions
20 explicit affected versions
10 explicit affected versions
4 explicit affected versions
12 explicit affected versions
57 explicit affected versions
44 explicit affected versions
16 explicit affected versions
13 explicit affected versions
26 explicit affected versions
14 explicit affected versions
37 explicit affected versions
38 explicit affected versions
18 explicit affected versions
9 explicit affected versions
18 explicit affected versions
8 explicit affected versions
138 explicit affected versions
25 explicit affected versions
71 explicit affected versions
31 explicit affected versions
115 explicit affected versions
94 explicit affected versions
4 explicit affected versions
1 explicit affected versions
23 explicit affected versions
87 explicit affected versions
43 explicit affected versions
24 explicit affected versions
118 explicit affected versions
138 explicit affected versions
58 explicit affected versions
4 explicit affected versions
47 explicit affected versions
1 explicit affected versions
41 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
The Linux kernel allows userspace processes to enable mitigations by calling prctl with PR_SET_SPECULATION_CTRL which disables the speculation feature as well as by using seccomp. We had noticed that on VMs of at least one major cloud provider, the kernel still left the victim process exposed to attacks in some cases even after enabling the spectre-BTI mitigation with prctl. The same behavior can be observed on a bare-metal machine when forcing the mitigation to IBRS on boot command line. This happened because when plain IBRS was enabled (not enhanced IBRS), the kernel had some logic that determined that STIBP was not needed. The IBRS bit implicitly protects against cross-thread branch target injection. However, with legacy IBRS, the IBRS bit was cleared on returning to userspace, due to performance reasons, which disabled the implicit STIBP and left userspace threads vulnerable to cross-thread branch target injection against which STIBP protects.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/6921ed9049bc7457f66c1596c5b78aec0dae4a9d
- https://github.com/google/security-research/security/advisories/GHSA-mj4w-6495-6crx
- https://kernel.dance/#6921ed9049bc7457f66c1596c5b78aec0dae4a9d
- https://ubuntu.com/security/CVE-2023-1998
- https://ubuntu.com/security/notices/USN-6033-1
- https://ubuntu.com/security/notices/USN-6171-1
- https://ubuntu.com/security/notices/USN-6172-1
- https://ubuntu.com/security/notices/USN-6185-1
- https://ubuntu.com/security/notices/USN-6187-1
- https://ubuntu.com/security/notices/USN-6207-1
- https://ubuntu.com/security/notices/USN-6222-1
- https://ubuntu.com/security/notices/USN-6223-1
- https://ubuntu.com/security/notices/USN-6256-1
- https://ubuntu.com/security/notices/USN-6739-1
- https://ubuntu.com/security/notices/USN-6740-1
- https://www.cve.org/CVERecord?id=CVE-2023-1998