Lucene search

K
cvelistLinuxCVELIST:CVE-2024-42318
HistoryAug 17, 2024 - 9:09 a.m.

CVE-2024-42318 landlock: Don't lose track of restrictions on cred_transfer

2024-08-1709:09:31
Linux
www.cve.org
4
linux kernel
vulnerability
landlock
cred_transfer
keyctl_session_to_parent
syscalls
hook_cred_prepare
hook_cred_transfer

EPSS

0

Percentile

13.7%

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.)

CNA 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": "385975dca53e",
        "lessThan": "916c648323fa",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "385975dca53e",
        "lessThan": "0d74fd54db0b",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "385975dca53e",
        "lessThan": "16896914bace",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "385975dca53e",
        "lessThan": "b14cc2cf313b",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "385975dca53e",
        "lessThan": "39705a6c29f8",
        "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": "custom"
      },
      {
        "version": "5.15.165",
        "lessThanOrEqual": "5.15.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.1.103",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.44",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10.3",
        "lessThanOrEqual": "6.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.11",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

EPSS

0

Percentile

13.7%