CVE-2021-47025·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: iommu/mediatek: Always enable the clk on resume In mtk_iommu_runtime_resume always enable the clk, even if m4u_dom is null. Otherwise the 'suspend' cb might disable the clk which is already disabled causing the warning: [ 1.586104] infra_m4u already disabled [ 1.586133] WARNING: CPU: 0 PID: 121 at drivers/clk/clk.c:952 clk_core_disable+0xb0/0xb8 [ 1.594391] mtk-iommu 10205000.iommu: bound 18001000.larb (ops mtk_smi_larb_component_ops) [ 1.598108] Modules linked in: [ 1.598114] CPU: 0 PID: 121 Comm: kworker/0:2 Not tainted 5.12.0-rc5 #69 [ 1.609246] mtk-iommu 10205000.iommu: bound 14027000.larb (ops mtk_smi_larb_component_ops) [ 1.617487] Hardware name: Google Elm (DT) [ 1.617491] Workqueue: pm pm_runtime_work [ 1.620545] mtk-iommu 10205000.iommu: bound 19001000.larb (ops mtk_smi_larb_component_ops) [ 1.627229] pstate: 60000085 (nZCv daIf -PAN -UAO -TCO BTYPE=--) [ 1.659297] pc : clk_core_disable+0xb0/0xb8 [ 1.663475] lr : clk_core_disable+0xb0/0xb8 [ 1.667652] sp : ffff800011b9bbe0 [ 1.670959] x29: ffff800011b9bbe0 x28: 0000000000000000 [ 1.676267] x27: ffff800011448000 x26: ffff8000100cfd98 [ 1.681574] x25: ffff800011b9bd48 x24: 0000000000000000 [ 1.686882] x23: 0000000000000000 x22: ffff8000106fad90 [ 1.692189] x21: 000000000000000a x20: ffff0000c0048500 [ 1.697496] x19: ffff0000c0048500 x18: ffffffffffffffff [ 1.702804] x17: 0000000000000000 x16: 0000000000000000 [ 1.708112] x15: ffff800011460300 x14: fffffffffffe0000 [ 1.713420] x13: ffff8000114602d8 x12: 0720072007200720 [ 1.718727] x11: 0720072007200720 x10: 0720072007200720 [ 1.724035] x9 : ffff800011b9bbe0 x8 : ffff800011b9bbe0 [ 1.729342] x7 : 0000000000000009 x6 : ffff8000114b8328 [ 1.734649] x5 : 0000000000000000 x4 : 0000000000000000 [ 1.739956] x3 : 00000000ffffffff x2 : ffff800011460298 [ 1.745263] x1 : 1af1d7de276f4500 x0 : 0000000000000000 [ 1.750572] Call trace: [ 1.753010] clk_core_disable+0xb0/0xb8 [ 1.756840] clk_core_disable_lock+0x24/0x40 [ 1.761105] clk_disable+0x20/0x30 [ 1.764501] mtk_iommu_runtime_suspend+0x88/0xa8 [ 1.769114] pm_generic_runtime_suspend+0x2c/0x48 [ 1.773815] __rpm_callback+0xe0/0x178 [ 1.777559] rpm_callback+0x24/0x88 [ 1.781041] rpm_suspend+0xdc/0x470 [ 1.784523] rpm_idle+0x12c/0x170 [ 1.787831] pm_runtime_work+0xa8/0xc0 [ 1.791573] process_one_work+0x1e8/0x360 [ 1.795580] worker_thread+0x44/0x478 [ 1.799237] kthread+0x150/0x158 [ 1.802460] ret_from_fork+0x10/0x30 [ 1.806034] ---[ end trace 82402920ef64573b ]--- [ 1.810728] ------------[ cut here ]------------ In addition, we now don't need to enable the clock from the function mtk_iommu_hw_init since it is already enabled by the resume.
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.12.4
- Published
- 2024-02-28
Affected versions
From: 5.12
Until: 5.12.4
Fixed in: 5.12.4
How to fix this CVE
Update the Linux kernel to version 5.12.4 or later to resolve this IOMMU clock management vulnerability. The fix ensures that clock resources are properly enabled during runtime resume operations, preventing repeated disable calls on already-disabled clocks. Systems running kernel versions 5.12.0 through 5.12.3 should prioritize this update to avoid kernel warnings and potential stability issues related to MediaTek IOMMU operations.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check kernel version with: uname -r (look for versions between 5.12.0 and 5.12.3)
- Step 2: Verify if MediaTek IOMMU is active on the system by checking: lspci | grep -i iommu or dmesg | grep -i mtk-iommu
- Step 3: Search kernel logs for the specific warning pattern: grep 'infra_m4u already disabled' /var/log/kern.log or journalctl -b | grep 'already disabled'
- Step 4: After updating, confirm the fix with: uname -r (should show 5.12.4 or later) and verify no clock warnings appear in fresh boot logs via dmesg | grep -i 'clk_core_disable'
FAQ
What is CVE-2021-47025?
CVE-2021-47025 is a kernel vulnerability in MediaTek IOMMU clock management where the runtime resume function fails to properly track clock state, causing attempts to disable an already-disabled clock and triggering kernel warnings during suspend/resume cycles.
Is CVE-2021-47025 being actively exploited?
No, CVE-2021-47025 is not listed on the CISA Known Exploited Vulnerabilities catalog and no public exploits are available. This is a kernel stability issue rather than a direct security bypass.
What versions of Kernel are affected by CVE-2021-47025?
Linux kernel versions 5.12.0 through 5.12.3 are vulnerable. The fix was included in kernel 5.12.4 and later stable releases.
How do I check if my server is vulnerable to CVE-2021-47025?
Run: uname -r and verify the output shows a version between 5.12.0 and 5.12.3. Additionally, check if MediaTek IOMMU is present: dmesg | grep -i mtk-iommu. If both are true, your system is vulnerable.
Does Defensia detect CVE-2021-47025?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2021-47025 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47025. Free for 1 server.
Get started free