lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <2025070332-CVE-2025-38136-1489@gregkh> Date: Thu, 3 Jul 2025 10:35:53 +0200 From: Greg Kroah-Hartman <gregkh@...uxfoundation.org> To: linux-cve-announce@...r.kernel.org Cc: Greg Kroah-Hartman <gregkh@...nel.org> Subject: CVE-2025-38136: usb: renesas_usbhs: Reorder clock handling and power management in probe From: Greg Kroah-Hartman <gregkh@...nel.org> Description =========== In the Linux kernel, the following vulnerability has been resolved: usb: renesas_usbhs: Reorder clock handling and power management in probe Reorder the initialization sequence in `usbhs_probe()` to enable runtime PM before accessing registers, preventing potential crashes due to uninitialized clocks. Currently, in the probe path, registers are accessed before enabling the clocks, leading to a synchronous external abort on the RZ/V2H SoC. The problematic call flow is as follows: usbhs_probe() usbhs_sys_clock_ctrl() usbhs_bset() usbhs_write() iowrite16() <-- Register access before enabling clocks Since `iowrite16()` is performed without ensuring the required clocks are enabled, this can lead to access errors. To fix this, enable PM runtime early in the probe function and ensure clocks are acquired before register access, preventing crashes like the following on RZ/V2H: [13.272640] Internal error: synchronous external abort: 0000000096000010 [#1] PREEMPT SMP [13.280814] Modules linked in: cec renesas_usbhs(+) drm_kms_helper fuse drm backlight ipv6 [13.289088] CPU: 1 UID: 0 PID: 195 Comm: (udev-worker) Not tainted 6.14.0-rc7+ #98 [13.296640] Hardware name: Renesas RZ/V2H EVK Board based on r9a09g057h44 (DT) [13.303834] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [13.310770] pc : usbhs_bset+0x14/0x4c [renesas_usbhs] [13.315831] lr : usbhs_probe+0x2e4/0x5ac [renesas_usbhs] [13.321138] sp : ffff8000827e3850 [13.324438] x29: ffff8000827e3860 x28: 0000000000000000 x27: ffff8000827e3ca0 [13.331554] x26: ffff8000827e3ba0 x25: ffff800081729668 x24: 0000000000000025 [13.338670] x23: ffff0000c0f08000 x22: 0000000000000000 x21: ffff0000c0f08010 [13.345783] x20: 0000000000000000 x19: ffff0000c3b52080 x18: 00000000ffffffff [13.352895] x17: 0000000000000000 x16: 0000000000000000 x15: ffff8000827e36ce [13.360009] x14: 00000000000003d7 x13: 00000000000003d7 x12: 0000000000000000 [13.367122] x11: 0000000000000000 x10: 0000000000000aa0 x9 : ffff8000827e3750 [13.374235] x8 : ffff0000c1850b00 x7 : 0000000003826060 x6 : 000000000000001c [13.381347] x5 : 000000030d5fcc00 x4 : ffff8000825c0000 x3 : 0000000000000000 [13.388459] x2 : 0000000000000400 x1 : 0000000000000000 x0 : ffff0000c3b52080 [13.395574] Call trace: [13.398013] usbhs_bset+0x14/0x4c [renesas_usbhs] (P) [13.403076] platform_probe+0x68/0xdc [13.406738] really_probe+0xbc/0x2c0 [13.410306] __driver_probe_device+0x78/0x120 [13.414653] driver_probe_device+0x3c/0x154 [13.418825] __driver_attach+0x90/0x1a0 [13.422647] bus_for_each_dev+0x7c/0xe0 [13.426470] driver_attach+0x24/0x30 [13.430032] bus_add_driver+0xe4/0x208 [13.433766] driver_register+0x68/0x130 [13.437587] __platform_driver_register+0x24/0x30 [13.442273] renesas_usbhs_driver_init+0x20/0x1000 [renesas_usbhs] [13.448450] do_one_initcall+0x60/0x1d4 [13.452276] do_init_module+0x54/0x1f8 [13.456014] load_module+0x1754/0x1c98 [13.459750] init_module_from_file+0x88/0xcc [13.464004] __arm64_sys_finit_module+0x1c4/0x328 [13.468689] invoke_syscall+0x48/0x104 [13.472426] el0_svc_common.constprop.0+0xc0/0xe0 [13.477113] do_el0_svc+0x1c/0x28 [13.480415] el0_svc+0x30/0xcc [13.483460] el0t_64_sync_handler+0x10c/0x138 [13.487800] el0t_64_sync+0x198/0x19c [13.491453] Code: 2a0103e1 12003c42 12003c63 8b010084 (79400084) [13.497522] ---[ end trace 0000000000000000 ]--- The Linux kernel CVE team has assigned CVE-2025-38136 to this issue. Affected and fixed versions =========================== Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 5.4.295 with commit 095cc0b5888acc228f12344e85b17539b9ce9367 Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 5.10.239 with commit 155453ada562c450a4ff5fcf4852b9fa5b6b793a Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 5.15.186 with commit 0a1e16a6cbf4452b46f20b862d6141a1e90844ee Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 6.1.142 with commit 1637623ad6205162b17804d07512e6f4cbd2a050 Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 6.6.94 with commit db96a4fd8614d47c0def265e0e6c996b0ee52a38 Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 6.12.34 with commit d4c368e4a638ddf4a9d6d687b0ff691aa46cce53 Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 6.15.3 with commit 6bab152e817fd41b9e178fa6b275354795c9703d Issue introduced in 3.0 with commit f1407d5c66240b33d11a7f1a41d55ccf6a9d7647 and fixed in 6.16-rc1 with commit ffb34a60ce86656ba12d46e91f1ccc71dd221251 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2025-38136 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: drivers/usb/renesas_usbhs/common.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/095cc0b5888acc228f12344e85b17539b9ce9367 https://git.kernel.org/stable/c/155453ada562c450a4ff5fcf4852b9fa5b6b793a https://git.kernel.org/stable/c/0a1e16a6cbf4452b46f20b862d6141a1e90844ee https://git.kernel.org/stable/c/1637623ad6205162b17804d07512e6f4cbd2a050 https://git.kernel.org/stable/c/db96a4fd8614d47c0def265e0e6c996b0ee52a38 https://git.kernel.org/stable/c/d4c368e4a638ddf4a9d6d687b0ff691aa46cce53 https://git.kernel.org/stable/c/6bab152e817fd41b9e178fa6b275354795c9703d https://git.kernel.org/stable/c/ffb34a60ce86656ba12d46e91f1ccc71dd221251
Powered by blists - more mailing lists