CVE-2023-54160

EUVD-2023-60285
In the Linux kernel, the following vulnerability has been resolved:

firmware: arm_sdei: Fix sleep from invalid context BUG

Running a preempt-rt (v6.2-rc3-rt1) based kernel on an Ampere Altra
triggers:

  BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
  in_atomic(): 0, irqs_disabled(): 128, non_block: 0, pid: 24, name: cpuhp/0
  preempt_count: 0, expected: 0
  RCU nest depth: 0, expected: 0
  3 locks held by cpuhp/0/24:
    #0: ffffda30217c70d0 (cpu_hotplug_lock){++++}-{0:0}, at: cpuhp_thread_fun+0x5c/0x248
    #1: ffffda30217c7120 (cpuhp_state-up){+.+.}-{0:0}, at: cpuhp_thread_fun+0x5c/0x248
    #2: ffffda3021c711f0 (sdei_list_lock){....}-{3:3}, at: sdei_cpuhp_up+0x3c/0x130
  irq event stamp: 36
  hardirqs last  enabled at (35): [<ffffda301e85b7bc>] finish_task_switch+0xb4/0x2b0
  hardirqs last disabled at (36): [<ffffda301e812fec>] cpuhp_thread_fun+0x21c/0x248
  softirqs last  enabled at (0): [<ffffda301e80b184>] copy_process+0x63c/0x1ac0
  softirqs last disabled at (0): [<0000000000000000>] 0x0
  CPU: 0 PID: 24 Comm: cpuhp/0 Not tainted 5.19.0-rc3-rt5-[...]
  Hardware name: WIWYNN Mt.Jade Server [...]
  Call trace:
    dump_backtrace+0x114/0x120
    show_stack+0x20/0x70
    dump_stack_lvl+0x9c/0xd8
    dump_stack+0x18/0x34
    __might_resched+0x188/0x228
    rt_spin_lock+0x70/0x120
    sdei_cpuhp_up+0x3c/0x130
    cpuhp_invoke_callback+0x250/0xf08
    cpuhp_thread_fun+0x120/0x248
    smpboot_thread_fn+0x280/0x320
    kthread+0x130/0x140
    ret_from_fork+0x10/0x20

sdei_cpuhp_up() is called in the STARTING hotplug section,
which runs with interrupts disabled. Use a CPUHP_AP_ONLINE_DYN entry
instead to execute the cpuhp cb later, with preemption enabled.

SDEI originally got its own cpuhp slot to allow interacting
with perf. It got superseded by pNMI and this early slot is not
relevant anymore. [1]

Some SDEI calls (e.g. SDEI_1_0_FN_SDEI_PE_MASK) take actions on the
calling CPU. It is checked that preemption is disabled for them.
_ONLINE cpuhp cb are executed in the 'per CPU hotplug thread'.
Preemption is enabled in those threads, but their cpumask is limited
to 1 CPU.
Move 'WARN_ON_ONCE(preemptible())' statements so that SDEI cpuhp cb
don't trigger them.

Also add a check for the SDEI_1_0_FN_SDEI_PRIVATE_RESET SDEI call
which acts on the calling CPU.

[1]:
https://lore.kernel.org/all/5813b8c5-ae3e-87fd-fccc-94c9cd08816d@arm.com/
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
UNKNOWN
---
Awaiting analysis
This vulnerability is currently awaiting analysis.
Base Score
CVSS 3.x
EPSS Score
Percentile: 10%
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
6.1.148-1
fixed
bookworm (security)
6.1.158-1
fixed
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.247-1
fixed
forky
6.17.12-1
fixed
sid
6.17.13-1
fixed
trixie
6.12.57-1
fixed
trixie (security)
6.12.48-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-hwe
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
xenial
needs-triage
linux-hwe-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-hwe-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-hwe-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-hwe-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-hwe-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-hwe-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-hwe-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-hwe-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-hwe-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-hwe-6.11
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-hwe-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-hwe-edge
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
xenial
ignored
linux-lts-xenial
jammy
dne
noble
dne
plucky
dne
questing
dne
trusty
needs-triage
linux-kvm
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
xenial
needs-triage
linux-allwinner-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-aws
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-aws-5.0
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-aws-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-aws-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-aws-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-aws-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-aws-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-aws-hwe
jammy
dne
noble
dne
plucky
dne
questing
dne
xenial
needs-triage
linux-azure
bionic
ignored
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-azure-4.15
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-azure-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-azure-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-azure-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-azure-6.11
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-azure-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-azure-fde
focal
ignored
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
dne
linux-azure-fde-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-fde-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-azure-fde-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-azure-fde-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-azure-fde-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-azure-nvidia
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-azure-nvidia-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-bluefield
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-azure-edge
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
xenial
needs-triage
linux-aws-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-azure-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-gcp-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-gcp
bionic
ignored
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
xenial
needs-triage
linux-gcp-4.15
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gcp-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-gcp-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-gcp-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-gcp-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-gcp-6.11
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-gcp-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-gke
focal
ignored
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-gke-4.15
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gke-5.4
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gke-5.15
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gkeop
focal
ignored
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-gkeop-5.4
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-gkeop-5.15
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-ibm
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-ibm-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-ibm-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-ibm-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-intel-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-intel-iotg
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-intel-iotg-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-iot
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-intel-iot-realtime
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-lowlatency
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-lowlatency-hwe-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-lowlatency-hwe-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-lowlatency-hwe-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-lowlatency-hwe-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-lowlatency-hwe-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-lowlatency-hwe-6.11
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-nvidia
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-nvidia-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-nvidia-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-nvidia-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-nvidia-6.11
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-nvidia-lowlatency
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-nvidia-tegra
jammy
needs-triage
noble
needs-triage
plucky
dne
questing
dne
linux-nvidia-tegra-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-nvidia-tegra-igx
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-oracle
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
xenial
needs-triage
linux-oracle-5.0
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oracle-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-oracle-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-oracle-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-oem
bionic
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oem-5.6
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oem-5.10
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oem-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oem-5.14
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-oem-5.17
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-oem-6.0
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-oem-6.1
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-oem-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-oem-6.8
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-oem-6.11
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-oem-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-oem-6.17
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-raspi
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
linux-raspi2
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-raspi-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-raspi-realtime
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-realtime
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
questing
needs-triage
linux-realtime-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-realtime-6.14
jammy
dne
noble
needs-triage
plucky
dne
questing
dne
linux-riscv
focal
ignored
jammy
ignored
noble
ignored
plucky
needs-triage
questing
needs-triage
linux-riscv-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-riscv-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-riscv-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
questing
dne
linux-riscv-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-riscv-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-riscv-6.8
jammy
needs-triage
noble
dne
plucky
dne
questing
dne
linux-riscv-6.14
jammy
dne
noble
ignored
plucky
dne
questing
dne
linux-starfive-5.19
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-starfive-6.2
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-starfive-6.5
jammy
ignored
noble
dne
plucky
dne
questing
dne
linux-xilinx
jammy
dne
noble
needs-triage
plucky
needs-triage
questing
dne
linux-xilinx-zynqmp
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
questing
dne