Lucene search

K
cvelistLinuxCVELIST:CVE-2024-42230
HistoryJul 30, 2024 - 7:47 a.m.

CVE-2024-42230 powerpc/pseries: Fix scv instruction crash with kexec

2024-07-3007:47:10
Linux
www.cve.org
9
linux kernel
powerpc/pseries
scv instruction
kexec
ail
interrupt vector

EPSS

0

Percentile

5.0%

In the Linux kernel, the following vulnerability has been resolved:

powerpc/pseries: Fix scv instruction crash with kexec

kexec on pseries disables AIL (reloc_on_exc), required for scv
instruction support, before other CPUs have been shut down. This means
they can execute scv instructions after AIL is disabled, which causes an
interrupt at an unexpected entry location that crashes the kernel.

Change the kexec sequence to disable AIL after other CPUs have been
brought down.

As a refresher, the real-mode scv interrupt vector is 0x17000, and the
fixed-location head code probably couldn’t easily deal with implementing
such high addresses so it was just decided not to support that interrupt
at all.

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "arch/powerpc/kexec/core_64.c",
      "arch/powerpc/platforms/pseries/kexec.c",
      "arch/powerpc/platforms/pseries/pseries.h",
      "arch/powerpc/platforms/pseries/setup.c"
    ],
    "versions": [
      {
        "version": "7fa95f9adaee",
        "lessThan": "c550679d6047",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "7fa95f9adaee",
        "lessThan": "d10e3c39001e",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "7fa95f9adaee",
        "lessThan": "8c6506616386",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "7fa95f9adaee",
        "lessThan": "21a741eb75f8",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "arch/powerpc/kexec/core_64.c",
      "arch/powerpc/platforms/pseries/kexec.c",
      "arch/powerpc/platforms/pseries/pseries.h",
      "arch/powerpc/platforms/pseries/setup.c"
    ],
    "versions": [
      {
        "version": "5.9",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "5.9",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.1.98",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.39",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.9.9",
        "lessThanOrEqual": "6.9.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]