Cloudanix VulnDB

CVE-2023-54221

None

CVSS

—

EPSS

0.2%

Published

Dec 30, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A startup routine in the Linux kernel for certain chip clock hardware could leave memory and resources allocated if an error happened, potentially causing slow resource drain on affected devices.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Theoretical
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability is a memory leak and incomplete error unwinding in imx93_clocks_probe caused by direct returns without calling unregister_hws, use of kzalloc instead of devm_kzalloc, and of_iomap without automatic cleanup, leaving hardware registrations and mapped regions active on failure paths.

Why it matters to the business

Systems using affected i.MX93 clock initialization may experience gradual kernel memory exhaustion or resource leaks during boot-time error conditions, increasing operational risk of instability on embedded or server deployments with high boot frequency or transient hardware issues.

How an attack unfolds

An attacker with local access or the ability to influence device-tree configuration induces a failure inside imx93_clocks_probe; the missing goto and non-managed allocations leave clocks registered and memory allocated, resulting in a persistent leak that can be triggered repeatedly to deplete resources.

How to fix it

Update the Linux kernel to a version containing commit 280a5ff665e12d1e0c54c20cedc9c5008aa686a5 or later; replace kzalloc with devm_kzalloc and of_iomap with devm_of_iomap in the imx93 clock driver, and ensure all error paths execute unregister_hws.

How to confirm the fix worked

Inspect the imx93 clock driver source for the presence of devm_kzalloc, devm_of_iomap, and the goto unregister_hws statements on the previously missing error paths; verify the running kernel tree contains commit 280a5ff665e12d1e0c54c20cedc9c5008aa686a5.

Typical attack path

  1. Gain ability to trigger probe errors via device-tree manipulation or hardware fault injection
  2. Cause imx93_clocks_probe to hit an error return before unregister_hws
  3. Repeat to accumulate leaked memory and ioremap regions
  4. Monitor for kernel memory pressure or OOM conditions

How to detect it

Review kernel boot logs and dmesg for repeated imx93 clock probe failures; use kmemleak reports or slabinfo to identify persistent allocations originating from the clock driver after failed probes; correlate with device-tree changes or hardware initialization errors.

What your security team should do

  • Prioritize kernel upgrade on all i.MX93-based systems within standard patch windows given low EPSS and no KEV listing
  • Audit custom device trees and boot configurations that could trigger probe failures
  • Enable kernel memory-leak detectors (kmemleak) in test environments to validate the fix
  • Monitor upstream stable branches for any backports of the referenced commit

The record

In the Linux kernel, the following vulnerability has been resolved: clk: imx93: fix memory leak and missing unwind goto in imx93_clocks_probe In function probe(), it returns directly without unregistered hws when error occurs. Fix this by adding 'goto unregister_hws;' on line 295 and line 310. Use devm_kzalloc() instead of kzalloc() to automatically free the memory using devm_kfree() when error occurs. Replace of_iomap() with devm_of_iomap() to automatically handle the unused ioremap region and delete 'iounmap(anatop_base);' in unregister_hws.

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 5.18.0 6.1.39
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_19 0 1-150600.13.3.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-64kb 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-docs 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-obs-build 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-source 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-syms 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-zfcpdump 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-docs 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-obs-build 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-source 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-syms 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.84.1

Related vulnerabilities