UBUNTU-CVE-2024-42318
In the Linux kernel, the following vulnerability has been resolved: landlock: Don't lose track of restrictions on cred_transfer When a process' cred struct is replaced, this _almost_ always invokes the cred_prepare LSM hook; but in one special case (when KEYCTL_SESSION_TO_PARENT updates the parent's credentials), the cred_transfer LSM hook is used instead. Landlock only implements the cred_prepare hook, not cred_transfer, so KEYCTL_SESSION_TO_PARENT causes all information on Landlock restrictions to be lost. This basically means that a process with the ability to use the fork() and keyctl() syscalls can get rid of all Landlock restrictions on itself. Fix it by adding a cred_transfer hook that does the same thing as the existing cred_prepare hook. (Implemented by having hook_cred_prepare() call hook_cred_transfer() so that the two functions are less likely to accidentally diverge in the future.)
02 / AFFECTED SOFTWARE
Affected packages
12 explicit affected versions
21 explicit affected versions
16 explicit affected versions
10 explicit affected versions
13 explicit affected versions
7 explicit affected versions
10 explicit affected versions
11 explicit affected versions
38 explicit affected versions
7 explicit affected versions
52 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
54 explicit affected versions
19 explicit affected versions
6 explicit affected versions
61 explicit affected versions
14 explicit affected versions
47 explicit affected versions
57 explicit affected versions
47 explicit affected versions
10 explicit affected versions
8 explicit affected versions
14 explicit affected versions
7 explicit affected versions
53 explicit affected versions
9 explicit affected versions
13 explicit affected versions
11 explicit affected versions
18 explicit affected versions
35 explicit affected versions
14 explicit affected versions
18 explicit affected versions
18 explicit affected versions
15 explicit affected versions
64 explicit affected versions
14 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
16 explicit affected versions
7 explicit affected versions
12 explicit affected versions
45 explicit affected versions
12 explicit affected versions
14 explicit affected versions
7 explicit affected versions
12 explicit affected versions
12 explicit affected versions
33 explicit affected versions
9 explicit affected versions
14 explicit affected versions
9 explicit affected versions
1 explicit affected versions
37 explicit affected versions
26 explicit affected versions
13 explicit affected versions
9 explicit affected versions
29 explicit affected versions
13 explicit affected versions
58 explicit affected versions
8 explicit affected versions
9 explicit affected versions
56 explicit affected versions
18 explicit affected versions
33 explicit affected versions
23 explicit affected versions
10 explicit affected versions
1 explicit affected versions
11 explicit affected versions
12 explicit affected versions
7 explicit affected versions
12 explicit affected versions
45 explicit affected versions
39 explicit affected versions
55 explicit affected versions
10 explicit affected versions
26 explicit affected versions
16 explicit affected versions
1 explicit affected versions
7 explicit affected versions
17 explicit affected versions
13 explicit affected versions
16 explicit affected versions
16 explicit affected versions
58 explicit affected versions
17 explicit affected versions
8 explicit affected versions
46 explicit affected versions
3 explicit affected versions
2 explicit affected versions
51 explicit affected versions
14 explicit affected versions
13 explicit affected versions
12 explicit affected versions
44 explicit affected versions
27 explicit affected versions
30 explicit affected versions
10 explicit affected versions
19 explicit affected versions
5 explicit affected versions
8 explicit affected versions
10 explicit affected versions
13 explicit affected versions
13 explicit affected versions
7 explicit affected versions
50 explicit affected versions
10 explicit affected versions
14 explicit affected versions
26 explicit affected versions
12 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
44 explicit affected versions
37 explicit affected versions
17 explicit affected versions
14 explicit affected versions
8 explicit affected versions
38 explicit affected versions
47 explicit affected versions
9 explicit affected versions
47 explicit affected versions
11 explicit affected versions
55 explicit affected versions
7 explicit affected versions
28 explicit affected versions
4 explicit affected versions
1 explicit affected versions
1 explicit affected versions
53 explicit affected versions
13 explicit affected versions
43 explicit affected versions
10 explicit affected versions
8 explicit affected versions
14 explicit affected versions
4 explicit affected versions
11 explicit affected versions
1 explicit affected versions
10 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: landlock: Don't lose track of restrictions on cred_transfer When a process' cred struct is replaced, this _almost_ always invokes the cred_prepare LSM hook; but in one special case (when KEYCTL_SESSION_TO_PARENT updates the parent's credentials), the cred_transfer LSM hook is used instead. Landlock only implements the cred_prepare hook, not cred_transfer, so KEYCTL_SESSION_TO_PARENT causes all information on Landlock restrictions to be lost. This basically means that a process with the ability to use the fork() and keyctl() syscalls can get rid of all Landlock restrictions on itself. Fix it by adding a cred_transfer hook that does the same thing as the existing cred_prepare hook. (Implemented by having hook_cred_prepare() call hook_cred_transfer() so that the two functions are less likely to accidentally diverge in the future.)
05 / REFERENCES
Further evidence
- https://bugs.chromium.org/p/project-zero/issues/detail?id=2566
- https://git.kernel.org/linus/39705a6c29f8a2b93cf5b99528a55366c50014d1
- https://git.kernel.org/stable/c/0d74fd54db0bd0c0c224bef0da8fc95ea9c9f36c
- https://git.kernel.org/stable/c/16896914bace82d7811c62f3b6d5320132384f49
- https://git.kernel.org/stable/c/39705a6c29f8a2b93cf5b99528a55366c50014d1
- https://git.kernel.org/stable/c/916c648323fa53b89eedb34a0988ddaf01406117
- https://git.kernel.org/stable/c/b14cc2cf313bd29056fadbc8ecd7f957cf5791ff
- https://lore.kernel.org/all/[email protected]/
- https://ubuntu.com/security/CVE-2024-42318
- https://ubuntu.com/security/notices/USN-7100-1
- https://ubuntu.com/security/notices/USN-7100-2
- https://ubuntu.com/security/notices/USN-7123-1
- https://ubuntu.com/security/notices/USN-7144-1
- https://ubuntu.com/security/notices/USN-7154-1
- https://ubuntu.com/security/notices/USN-7154-2
- https://ubuntu.com/security/notices/USN-7155-1
- https://ubuntu.com/security/notices/USN-7156-1
- https://ubuntu.com/security/notices/USN-7194-1
- https://ubuntu.com/security/notices/USN-7196-1
- https://www.cve.org/CVERecord?id=CVE-2024-42318
- https://www.openwall.com/lists/oss-security/2024/08/17/2