CVE-2023-54020
Linux Kernel vulnerability analysis and mitigation

Overview

CVE-2023-54020 is a memory leak vulnerability in the Linux kernel's dmaengine: sf-pdma driver, caused by a missing kfree() call in sf_pdma_free_desc(). The flaw was introduced by commit b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel"), which changed sf_pdma_prep_dma_memcpy() to unconditionally allocate a new sf_pdma_desc on every call without updating the corresponding free logic. Affected Linux kernel versions span from the introduction of commit b2cc5c465c2c up to the patched releases in stable branches (5.15.99, 6.1.16, 6.2.3, and 6.3). The CVE was published on December 24, 2025, and NVD has not yet assigned a CVSS score; Feedly estimates the severity as Medium (Feedly, CVE Record).

Technical details

The root cause is a memory management error (CWE category: memory leak) in the Linux kernel's SiFive Platform DMA (sf-pdma) driver. When multithread support was added via commit b2cc5c465c2c, the descriptor recycling logic (based on an in_use flag) was removed, causing sf_pdma_prep_dma_memcpy() to allocate a new sf_pdma_desc object from the slab cache on every invocation. However, sf_pdma_free_desc() was not updated to free the previously allocated descriptor, resulting in a persistent kernel memory leak. Over time, repeated DMA operations cause memory starvation, as confirmed by kmemleak traces showing unreferenced 192-byte objects allocated via kmem_cache_alloc in sf_pdma_prep_dma_memcpy (CVE Record).

Impact

The primary impact of this vulnerability is a gradual degradation of system availability due to kernel memory exhaustion (memory starvation). Each invocation of sf_pdma_prep_dma_memcpy() leaks a 192-byte kernel slab object; on systems performing frequent DMA operations (e.g., embedded or IoT devices using the SiFive PDMA controller), this can eventually exhaust kernel memory and cause system instability or a crash. There is no direct confidentiality or integrity impact, and exploitation does not enable privilege escalation or remote code execution (Feedly).

Mitigation and workarounds

The fix adds the missing kfree() call to sf_pdma_free_desc() and removes the now-redundant in_use flag. Patches have been applied to the following stable kernel branches: 5.15.99, 6.1.16, 6.2.3, and 6.3. Users running affected kernel versions on hardware with the SiFive PDMA controller should upgrade to a patched stable release. The relevant upstream fix commits are 03fece43fa10, 8bd5040bd43f, ad222c9af25e, and b02e07015a5a (kernel.org patch 1, kernel.org patch 2, kernel.org patch 3, kernel.org patch 4).

Additional resources


SourceThis report was generated using AI

Related Linux Kernel vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-64557NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-selftests-internal
NoNoJul 29, 2026
CVE-2026-64556NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-64k-devel
NoNoJul 29, 2026
CVE-2026-64555NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-azure-fde-6.14
NoNoJul 27, 2026
CVE-2026-64554NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-gcp-6.14
NoYesJul 27, 2026
CVE-2026-64553NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-64k-debug-modules-internal
NoYesJul 27, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management