MEDIUM 5.5

CVE-2026-53152: Linux Rockchip eMMC Driver NULL Pointer Dereference (RK2928/RK3066/RK3188)

A NULL-pointer dereference vulnerability exists in the Linux kernel's Rockchip eMMC controller driver affecting very old SoC variants (RK2928, RK3066, RK3188). These legacy controllers lack support for high-speed UHS modes and traditionally had minimal driver initialization. A recent kernel commit added memory clock auto-gating logic that assumes driver private data exists, causing the old controllers to crash when they access uninitialized memory structures. The vulnerability requires local access and results in denial of service.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-476
Affected products
7 configuration(s)
Published / Modified
2026-06-25 / 2026-07-06

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: mmc: dw_mmc-rockchip: Add missing private data for very old controllers The really old controllers (rk2928, rk3066, rk3188) do not support UHS speeds at all, and thus never handled phase data. For that reason it never had a parse_dt callback and no driver private data at all. Commit ff6f0286c896 ("mmc: dw_mmc-rockchip: Add memory clock auto-gating support") makes the private data sort of mandatory, because the init function checks whether phases are configured internally or through the clock controller. This results in the old SoCs then experiencing NULL-pointer dereferences when they try to access that private-data struct. While we could have if (priv) conditionals in all places, it's way less cluttery to just give the old types their private-data struct.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-53152 is a CWE-476 NULL-pointer dereference in the dw_mmc-rockchip driver. The legacy Rockchip SoCs (rk2928, rk3066, rk3188) were designed before UHS phase handling was implemented, and therefore had no parse_dt callback or driver private data allocation. Commit ff6f0286c896 introduced mandatory phase configuration checks that reference the private-data struct without null validation. When these old controllers attempt initialization, they dereference a NULL pointer, triggering a kernel panic. The issue becomes exploitable as a local denial-of-service vector on systems running affected kernel versions with these legacy SoCs and a local unprivileged user account.

Business impact

Organizations using RK2928-, RK3066-, or RK3188-based embedded systems running vulnerable Linux kernels face potential service interruption through local denial of service. While the attack surface is limited to systems with local user access, affected devices—commonly found in industrial IoT, set-top boxes, and legacy Android-based products—could be remotely compromised if combined with privilege escalation vulnerabilities. Persistent availability issues from kernel panics increase operational overhead and pose security posture risks in compliance-sensitive environments.

Affected systems

The vulnerability affects Linux kernel versions containing commit ff6f0286c896 (memory clock auto-gating support) without the corresponding NULL-pointer protection patch. Specifically targeted are systems with Rockchip RK2928, RK3066, or RK3188 SoCs. Distributions shipping these kernel versions with affected Rockchip platforms—including older Android devices, set-top boxes, and specialized embedded appliances—are at risk. Check your kernel release notes and device specifications to confirm both the kernel version and whether your hardware uses one of these legacy Rockchip variants.

Exploitability

Exploitation requires local access (AV:L) with standard user privileges (PR:L) and no user interaction (UI:N). An unprivileged local user can trigger the NULL-pointer dereference through normal device initialization or driver reload operations, causing an immediate kernel panic. The attack is deterministic and does not require exploitation of other vulnerabilities. However, the impact is confined to denial of service; no data exfiltration or privilege escalation occurs directly from this flaw.

Remediation

Apply kernel patches that restore NULL-pointer safety to the dw_mmc-rockchip driver by either allocating private-data structures for legacy controllers or adding defensive null-checks before dereferencing the priv struct. Vendors and distributions should backport the fix to supported kernel branches. For immediate mitigation on systems that cannot be patched, disable local user shell access where possible, though this is often impractical for production devices. Verify the fix is included in your next kernel update by checking the commit log against your vendor's advisory.

Patch guidance

Update to a patched Linux kernel version that includes fixes for dw_mmc-rockchip NULL-pointer handling. Contact your Linux distribution, device manufacturer, or Rockchip vendor for specific patch version numbers and release timelines. Kernel maintainers have likely issued stable-kernel backports; check [email protected] or your distribution's security advisories for exact version numbers. Test patches in a non-production environment first to ensure compatibility with your specific embedded platform and driver configuration.

Detection guidance

Monitor kernel logs and system event logs for dw_mmc-rockchip driver initialization failures and NULL-pointer dereference oops messages (typically containing 'NULL pointer dereference' and referencing the Rockchip eMMC driver). Set up alerts for unexpected kernel panics or device reboots on RK2928-, RK3066-, or RK3188-based systems. Use SELinux/AppArmor audit logs to correlate local user activity with fault events. For forensic analysis, enable kernel debugging symbols and preserve kernel crash dumps (kdump) to confirm the vulnerability's presence.

Why prioritize this

Although scored MEDIUM (CVSS 5.5), this vulnerability warrants prompt attention due to its straightforward exploitability by any local user and the critical consequence of service denial on embedded systems that often lack redundancy. Legacy Rockchip platforms are found in long-lived IoT and set-top-box deployments where unplanned restarts create operational friction. Organizations relying on these devices should prioritize patching to maintain availability SLAs. The low bar to exploitation and deterministic nature elevate business risk despite the narrower affected-system footprint.

Risk score, explained

The CVSS 3.1 score of 5.5 (MEDIUM) reflects the availability impact (AH) from kernel panic offset against the requirement for local access (AV:L) and unprivileged credentials (PR:L). The score appropriately captures denial of service as the sole impact, with no confidentiality or integrity concerns. For organizations operating legacy Rockchip devices with regular local user access, the practical risk is higher due to deterministic exploitation. Risk context should include your asset inventory: devices without this SoC variant should see negligible risk.

Frequently asked questions

Does this affect my modern ARM or x86 Linux systems?

No. This vulnerability is specific to Rockchip RK2928, RK3066, and RK3188 SoCs, which are found primarily in older embedded devices (circa 2010–2015). Standard x86 servers, modern ARM boards (Cortex-A72+), and other SoC families are unaffected. Check your device specifications or kernel module list (lsmod | grep dw_mmc) to confirm.

Can this be exploited remotely?

No. This requires local user access (unprivileged) to trigger. Remote exploitation is impossible without first obtaining a shell on the target device through a separate vulnerability or misconfiguration.

What happens when the vulnerability is triggered?

The kernel panics and the device reboots. No data loss or corruption typically occurs; the impact is purely service disruption. However, repeated crashes can degrade storage and shorten device lifespan.

How do I know if my device uses an affected Rockchip SoC?

Check the device manufacturer's specifications or boot logs. Run 'cat /proc/cpuinfo' or 'cat /sys/firmware/devicetree/base/compatible' on the device (if accessible). If you see 'rk2928', 'rk3066', or 'rk3188' in the output, your device is affected.

This analysis is based on the CVE description and publicly available Linux kernel information as of the vulnerability publication date. Patch availability, version numbers, and timelines vary by distribution and manufacturer. Always verify specific patch versions against official vendor advisories and test thoroughly in non-production environments before deployment. SEC.co provides this guidance for informational purposes and does not guarantee remediation outcomes. Organizations should consult their device manufacturers and Linux distributors for authoritative patching guidance. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).