CVE-2023-53216: arm64: efi: Make efi_rt_lock a raw_spinlock
In the Linux kernel, the following vulnerability has been resolved:
arm64: efi: Make efi_rt_lock a raw_spinlock
Running a rt-kernel base on 6.2.0-rc3-rt1 on an Ampere Altra outputs
the following:
BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 9, name: kworker/u320:0
preempt_count: 2, expected: 0
RCU nest depth: 0, expected: 0
3 locks held by kworker/u320:0/9:
#0: ffff3fff8c27d128 ((wq_completion)efi_rts_wq){+.+.}-{0:0}, at: process_one_work (./include/linux/atomic/atomic-long.h:41)
#1: ffff80000861bdd0 ((work_completion)(&efi_rts_work.work)){+.+.}-{0:0}, at: process_one_work (./include/linux/atomic/atomic-long.h:41)
#2: ffffdf7e1ed3e460 (efi_rt_lock){+.+.}-{3:3}, at: efi_call_rts (drivers/firmware/efi/runtime-wrappers.c:101)
Preemption disabled at:
efi_virtmap_load (./arch/arm64/include/asm/mmu_context.h:248)
CPU: 0 PID: 9 Comm: kworker/u320:0 Tainted: G W 6.2.0-rc3-rt1
Hardware name: WIWYNN Mt.Jade Server System B81.03001.0005/Mt.Jade Motherboard, BIOS 1.08.20220218 (SCP: 1.08.20220218) 2022/02/18
Workqueue: efi_rts_wq efi_call_rts
Call trace:
dump_backtrace (arch/arm64/kernel/stacktrace.c:158)
show_stack (arch/arm64/kernel/stacktrace.c:165)
dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
dump_stack (lib/dump_stack.c:114)
__might_resched (kernel/sched/core.c:10134)
rt_spin_lock (kernel/locking/rtmutex.c:1769 (discriminator 4))
efi_call_rts (drivers/firmware/efi/runtime-wrappers.c:101)
[...]
This seems to come from commit ff7a167961d1 ("arm64: efi: Execute
runtime services from a dedicated stack") which adds a spinlock. This
spinlock is taken through:
efi_call_rts()
\-efi_call_virt()
\-efi_call_virt_pointer()
\-arch_efi_call_virt_setup()
Make 'efi_rt_lock' a raw_spinlock to avoid being preempted.
[ardb: The EFI runtime services are called with a different set of
translation tables, and are permitted to use the SIMD registers.
The context switch code preserves/restores neither, and so EFI
calls must be made with preemption disabled, rather than only
disabling migration.]
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel arm64 EFI runtime locking flaw. On affected systems, a local user could potentially trigger kernel-level consequences with high confidentiality, integrity, and availability impact. The source bundle does not show remote exposure or confirmed active exploitation.
Executive priority
Prioritize patching affected arm64 Linux infrastructure, especially real-time or specialized server deployments. Business urgency is high where local users, workloads, or tenants can execute code on the host.
Technical view
The issue involves efi_rt_lock in arm64 EFI runtime calls. On PREEMPT_RT kernels, a regular spinlock may sleep while EFI calls require preemption disabled because they use different translation tables and may use SIMD state. The kernel fix makes efi_rt_lock a raw_spinlock.
Likely exposure
Exposure is most relevant to arm64 Linux systems using EFI runtime services on affected kernel versions or downstream builds. The bundle specifically references RT-kernel behavior on Ampere Altra. It is not described as a network-facing vulnerability.
Exploitation context
CVSS indicates local attack, low complexity, low privileges, and no user interaction. The bundle marks KEV as false and provides no evidence of public exploitation. Treat exploitation status as unconfirmed, not active.
Researcher notes
Evidence supports a kernel locking/preemption flaw in arm64 EFI runtime paths. The supplied data does not include CWE mapping, exploit reports, or a named workaround. Validate against vendor backports rather than relying only on upstream version strings.
Mitigation direction
Update to a kernel build containing the referenced stable fixes.
Check Linux distribution advisories for backported fixes and package names.
Prioritize arm64 systems using EFI runtime services or real-time kernels.
If updates are unavailable, follow vendor guidance for supported mitigations.
Restrict unnecessary local account access on affected hosts.
Validation and detection
Inventory arm64 Linux hosts and record running kernel versions.
Identify systems using affected downstream kernels or RT kernel builds.
Check vendor kernel changelogs for the efi_rt_lock raw_spinlock fix.
Confirm the installed kernel includes one of the referenced stable commits.
Monitor kernel logs for EFI runtime or locking warnings.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-53216 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
6Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.