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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ