CVE-2023-54058: firmware: arm_ffa: Check if ffa_driver remove is present before executing
In the Linux kernel, the following vulnerability has been resolved:
firmware: arm_ffa: Check if ffa_driver remove is present before executing
Currently ffa_drv->remove() is called unconditionally from
ffa_device_remove(). Since the driver registration doesn't check for it
and allows it to be registered without .remove callback, we need to check
for the presence of it before executing it from ffa_device_remove() to
above a NULL pointer dereference like the one below:
| Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
| Mem abort info:
| ESR = 0x0000000086000004
| EC = 0x21: IABT (current EL), IL = 32 bits
| SET = 0, FnV = 0
| EA = 0, S1PTW = 0
| FSC = 0x04: level 0 translation fault
| user pgtable: 4k pages, 48-bit VAs, pgdp=0000000881cc8000
| [0000000000000000] pgd=0000000000000000, p4d=0000000000000000
| Internal error: Oops: 0000000086000004 [#1] PREEMPT SMP
| CPU: 3 PID: 130 Comm: rmmod Not tainted 6.3.0-rc7 #6
| Hardware name: FVP Base RevC (DT)
| pstate: 63402809 (nZCv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=-c)
| pc : 0x0
| lr : ffa_device_remove+0x20/0x2c
| Call trace:
| 0x0
| device_release_driver_internal+0x16c/0x260
| driver_detach+0x90/0xd0
| bus_remove_driver+0xdc/0x11c
| driver_unregister+0x30/0x54
| ffa_driver_unregister+0x14/0x20
| cleanup_module+0x18/0xeec
| __arm64_sys_delete_module+0x234/0x378
| invoke_syscall+0x40/0x108
| el0_svc_common+0xb4/0xf0
| do_el0_svc+0x30/0xa4
| el0_svc+0x2c/0x7c
| el0t_64_sync_handler+0x84/0xf0
| el0t_64_sync+0x190/0x194
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel stability flaw in the Arm FF-A firmware driver path. If an FF-A driver is removed without a registered removal callback, the kernel can dereference a null pointer and crash. The available sources do not show privilege escalation, data theft, or active exploitation.
Executive priority
Handle through normal kernel patch management unless the organization operates Arm FF-A systems where kernel crashes create availability risk. Escalate if affected platforms support critical workloads or untrusted local users can trigger driver removal paths.
Technical view
ffa_device_remove() called ffa_drv->remove() unconditionally, while driver registration allowed FF-A drivers without a .remove callback. During driver unregister or module removal, this could trigger a kernel NULL pointer dereference and oops on affected Linux versions. Stable kernel commits add the missing presence check.
Likely exposure
Exposure appears limited to Linux systems using the Arm FF-A firmware framework on affected kernel versions. The CVE record lists Linux 5.15, 5.15.114, 6.1.31, 6.3.5, and 6.4-related affected entries, with several stable commit references as fixes.
Exploitation context
The source bundle shows a crash during module removal via the FF-A driver unregister path. It does not cite public exploitation, CISA KEV listing, remote attackability, or a complete CVSS score. Treat exploitation status as unconfirmed.
Researcher notes
Evidence supports a local kernel NULL pointer dereference in the FF-A driver removal path. The bundle does not provide CVSS, CWE, exploitability analysis, or distro-specific fixed versions. Avoid assuming broader impact beyond availability without additional vendor evidence.
Mitigation direction
Update to a vendor kernel containing the referenced stable fixes.
For custom kernels, verify the FF-A remove callback null check is present.
Check distribution advisories for supported fixed kernel package versions.
Prioritize Arm platforms using FF-A firmware or related kernel modules.
Validation and detection
Inventory Linux kernel versions on Arm systems.
Identify systems using the kernel Arm FF-A firmware framework.
Compare kernel source or package changelogs against the referenced stable commits.
Confirm vendor advisories mark the deployed kernel as fixed.
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-54058 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.
0CVSS vectors
3Timeline events
0ADP providers
5Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 24, 2025, 12:23 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.