Cloudanix VulnDB

CVE-2025-71200

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

Feb 14, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A local user on certain Linux systems with Rockchip storage controllers can trigger storage failures by changing a clock setting that the hardware cannot safely accept.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Improper Input Validation
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

The flaw permits a local process to write a clock frequency below 52 MHz to the mmc debugfs interface while the Rockchip DWC MSHC controller is in HS200 or HS400 mode, violating the controller's minimum-clock requirement and triggering CQE recovery failures, spurious TCN warnings, and link breakage.

Why it matters to the business

Systems using affected Rockchip-based storage controllers can experience sudden storage I/O stalls or kernel-level recovery attempts that degrade or halt workloads; the large number of container images carrying the vulnerable kernel increases exposure across build pipelines and runtime environments.

How an attack unfolds

An attacker with local access writes a sub-52 MHz value to /sys/kernel/debug/mmc*/clock via debugfs; the driver accepts the value without validation, the controller loses link synchronization, CQE recovery is attempted, and repeated failures produce warnings and potential denial of service.

How to fix it

Upgrade the Linux kernel to a version containing commit 59b8a1ca6df4db2ca250e9eeab74e2b0068d69e9 or later; rebuild and redeploy any container images (docker, dockerd, docker-dind, etc.) that embed the vulnerable kernel; restrict debugfs mounts or apply kernel configuration options that disable mmc clock debugfs writes where possible.

How to confirm the fix worked

Confirm the running kernel contains commit 59b8a1ca6df4db2ca250e9eeab74e2b0068d69e9; attempt the clock write on a test system and verify the operation is now rejected; inspect dmesg for absence of the previous CQE recovery and cqhci_irq warnings after the change.

Typical attack path

  1. Obtain local shell on a system exposing the mmc debugfs entry
  2. Identify the active mmc host operating in HS200/HS400 mode
  3. Echo a frequency below 52 MHz into the clock debugfs file
  4. Observe mmc CQE recovery messages and kernel warnings in dmesg
  5. Repeat or combine with other actions to sustain storage disruption

How to detect it

Search kernel logs for strings indicating mmc CQE recovery, cqhci halt failures, or spurious TCN messages; correlate with processes writing to mmc clock debugfs paths; review audit logs for writes to /sys/kernel/debug/mmc*/clock.

  • mmc0: running CQE recovery
  • cqhci: Failed to halt
  • cqhci: spurious TCN for tag
  • WARNING: drivers/mmc/host/cqhci-core.c
  • echo .* > /sys/kernel/debug/mmc*/clock

What your security team should do

  • Prioritize kernel updates on all Rockchip-based hosts and container build pipelines
  • Audit debugfs exposure and apply mount options or SELinux/AppArmor policies to limit access
  • Monitor EPSS trend and re-evaluate if exploit code appears
  • Test storage performance post-update to ensure HS200/HS400 modes remain stable

The record

In the Linux kernel, the following vulnerability has been resolved: mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes. Add a check to prevent illegal clock reduction through debugfs: root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [ 30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 6.0.0 6.1.162
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-azure 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.27.1.160000.2.8
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.27.1

Related vulnerabilities