{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-42318","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-07-30T07:40:12.278Z","datePublished":"2024-08-17T09:09:31.160Z","dateUpdated":"2026-08-05T11:36:37.407Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:36:37.407Z"},"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.)"}],"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."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/landlock/cred.c"],"versions":[{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","lessThan":"916c648323fa53b89eedb34a0988ddaf01406117","status":"affected","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","lessThan":"0d74fd54db0bd0c0c224bef0da8fc95ea9c9f36c","status":"affected","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","lessThan":"16896914bace82d7811c62f3b6d5320132384f49","status":"affected","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","lessThan":"b14cc2cf313bd29056fadbc8ecd7f957cf5791ff","status":"affected","versionType":"git"},{"version":"385975dca53eb41031d0cbd1de318eb1bc5d6bb9","lessThan":"39705a6c29f8a2b93cf5b99528a55366c50014d1","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/landlock/cred.c"],"versions":[{"version":"5.13","status":"affected"},{"version":"0","lessThan":"5.13","status":"unaffected","versionType":"semver"},{"version":"5.15.165","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.103","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.44","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.10.3","lessThanOrEqual":"6.10.*","status":"unaffected","versionType":"semver"},{"version":"6.11","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"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"}]}]}],"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"}],"title":"landlock: Don't lose track of restrictions on cred_transfer","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":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-03T22:04:37.227Z"}},{"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"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-09-12T17:33:26.227Z"}}]}}