{"id":"CVE-2024-42318","state":"PUBLISHED","title":"landlock: Don't lose track of restrictions on cred_transfer","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nlandlock: Don't lose track of restrictions on cred_transfer\n\nWhen a process' cred struct is replaced, this _almost_ always invokes\nthe cred_prepare LSM hook; but in one special case (when\nKEYCTL_SESSION_TO_PARENT updates the parent's credentials), the\ncred_transfer LSM hook is used instead.  Landlock only implements the\ncred_prepare hook, not cred_transfer, so KEYCTL_SESSION_TO_PARENT causes\nall information on Landlock restrictions to be lost.\n\nThis basically means that a process with the ability to use the fork()\nand keyctl() syscalls can get rid of all Landlock restrictions on\nitself.\n\nFix it by adding a cred_transfer hook that does the same thing as the\nexisting cred_prepare hook. (Implemented by having hook_cred_prepare()\ncall hook_cred_transfer() so that the two functions are less likely to\naccidentally diverge in the future.)","publishedAt":"2024-08-17T09:09:31.160Z","updatedAt":"2026-08-05T11:36:37.407Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"916c648323fa53b89eedb34a0988ddaf01406117","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"0d74fd54db0bd0c0c224bef0da8fc95ea9c9f36c","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"16896914bace82d7811c62f3b6d5320132384f49","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"b14cc2cf313bd29056fadbc8ecd7f957cf5791ff","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"39705a6c29f8a2b93cf5b99528a55366c50014d1","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/landlock/cred.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.13","versionType":"semver"},{"version":"5.15.165","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.103","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.44","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.10.3","status":"unaffected","lessThanOrEqual":"6.10.*","versionType":"semver"},{"version":"6.11","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/landlock/cred.c"]}],"references":["https://git.kernel.org/stable/c/916c648323fa53b89eedb34a0988ddaf01406117","https://git.kernel.org/stable/c/0d74fd54db0bd0c0c224bef0da8fc95ea9c9f36c","https://git.kernel.org/stable/c/16896914bace82d7811c62f3b6d5320132384f49","https://git.kernel.org/stable/c/b14cc2cf313bd29056fadbc8ecd7f957cf5791ff","https://git.kernel.org/stable/c/39705a6c29f8a2b93cf5b99528a55366c50014d1","https://lore.kernel.org/all/20240817.shahka3Ee1iy@digikod.net/","https://www.openwall.com/lists/oss-security/2024/08/17/2","https://bugs.chromium.org/p/project-zero/issues/detail?id=2566","http://www.openwall.com/lists/oss-security/2024/08/17/2","https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:47.831Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/42xxx/CVE-2024-42318.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-42318","state":"PUBLISHED","datePublished":"2024-08-17T09:09:31.160Z","dateUpdated":"2026-08-05T11:36:37.407Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-07-30T07:40:12.278Z"},"containers":{"cna":{"title":"landlock: Don't lose track of restrictions on cred_transfer","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nlandlock: Don't lose track of restrictions on cred_transfer\n\nWhen a process' cred struct is replaced, this _almost_ always invokes\nthe cred_prepare LSM hook; but in one special case (when\nKEYCTL_SESSION_TO_PARENT updates the parent's credentials), the\ncred_transfer LSM hook is used instead.  Landlock only implements the\ncred_prepare hook, not cred_transfer, so KEYCTL_SESSION_TO_PARENT causes\nall information on Landlock restrictions to be lost.\n\nThis basically means that a process with the ability to use the fork()\nand keyctl() syscalls can get rid of all Landlock restrictions on\nitself.\n\nFix it by adding a cred_transfer hook that does the same thing as the\nexisting cred_prepare hook. (Implemented by having hook_cred_prepare()\ncall hook_cred_transfer() so that the two functions are less likely to\naccidentally diverge in the future.)"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"916c648323fa53b89eedb34a0988ddaf01406117","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"0d74fd54db0bd0c0c224bef0da8fc95ea9c9f36c","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"16896914bace82d7811c62f3b6d5320132384f49","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"b14cc2cf313bd29056fadbc8ecd7f957cf5791ff","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","status":"affected","lessThan":"39705a6c29f8a2b93cf5b99528a55366c50014d1","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/landlock/cred.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.13","versionType":"semver"},{"version":"5.15.165","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.103","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.44","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.10.3","status":"unaffected","lessThanOrEqual":"6.10.*","versionType":"semver"},{"version":"6.11","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/landlock/cred.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/916c648323fa53b89eedb34a0988ddaf01406117"},{"url":"https://git.kernel.org/stable/c/0d74fd54db0bd0c0c224bef0da8fc95ea9c9f36c"},{"url":"https://git.kernel.org/stable/c/16896914bace82d7811c62f3b6d5320132384f49"},{"url":"https://git.kernel.org/stable/c/b14cc2cf313bd29056fadbc8ecd7f957cf5791ff"},{"url":"https://git.kernel.org/stable/c/39705a6c29f8a2b93cf5b99528a55366c50014d1"},{"url":"https://lore.kernel.org/all/20240817.shahka3Ee1iy@digikod.net/"},{"url":"https://www.openwall.com/lists/oss-security/2024/08/17/2"},{"url":"https://bugs.chromium.org/p/project-zero/issues/detail?id=2566"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Exploitation requires executing local syscalls (`fork()` plus `keyctl(KEYCTL_JOIN_SESSION_KEYRING)` / `keyctl(KEYCTL_SESSION_TO_PARENT)`) on the target system; there is no remote or adjacent-network entry point into the credential-transfer path.\nAC:L - The attacker controls every precondition — the parent/child relationship, single-threadedness, matching uid/gid, and the distinct session keyrings — and the upstream selftest demonstrates the escape is 100% deterministic with no race, memory-layout, or timing dependency.\nPR:L - Only the ability to run code as an ordinary local user is needed; Landlock sandboxing and `keyctl()` are entirely unprivileged (the selftest explicitly calls `drop_caps()` before reproducing the escape), and in fact the attacker starts from a *less*-than-normal privilege level inside the sandbox.\nUI:N - The \"victim\" whose credentials are rewritten is the attacker's own parent process, driven entirely by the attacker's task_work; no action by any other user is required.\nS:C - This is a sandbox escape — the confined process breaks out of the Landlock domain imposed by a separate security authority (the sandboxing supervisor/policy), gaining access to filesystem and network resources managed outside the vulnerable component's security scope.\nC:H - All Landlock restrictions are dropped at once, so the escaped process can read every file and directory the policy was specifically deployed to hide from it, a total loss of the confidentiality guarantee of the impacted component.\nI:H - The escape restores unrestricted write, create, rename, link and (ABI 3+) truncate access plus network bind/connect, letting the process arbitrarily modify data the sandbox policy protected.\nA:H - With every restriction removed the process can delete and truncate files the Landlock policy existed to protect, destroying the availability of the sandboxed resources; the protection is permanently and completely lost for the lifetime of the process and all its descendants."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:36:37.407Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"5.15.165"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.1.103"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.6.44"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.10.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.11"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2024/08/17/2"},{"url":"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T22:04:37.227Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-42318","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T16:09:35.795087Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-12T17:33:26.227Z"}}]}}}