CVE-2026-64420: mfd: cros_ec: Delay dev_set_drvdata() until probe success

Published Jul 25, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

mfd: crosec: Delay devsetdrvdata() until probe success

If ecdeviceprobe() fails, crosecclassrelease releases memory for the crosecdev structure. However, because the drvdata was already set, sub-drivers like crosectypec can still retrieve the stale pointer via the platform device. This leads to a use-after-free when crosectypec attempts to access &typec->ec->ec->dev on a device that has already been released. Move devsetdrvdata() to ensure that the pointer is only made available once all initialization steps have succeeded.

sysfs: cannot create duplicate filename '/class/chromeos/crosec' Call trace: sysfsdocreatelinksd+0x94/0xdc sysfscreatelink+0x30/0x44 deviceaddclasssymlinks+0x90/0x13c deviceadd+0xf0/0x50c ecdeviceprobe+0x150/0x4f0 platformprobe+0xa0/0xe0 ... BUG: KASAN: invalid-access in memcpy+0x44/0x230 Write at addr f5ffff809e2d33ac by task kworker/u32:5/125 Pointer tag: [f5], memory tag: [fe] Tainted : [W]=WARN, [O]=OOTMODULE Hardware name: Google Navi unprovisioned 0x7FFFFFFF/sku0 board/sku3 Workqueue: eventsunbound deferredprobeworkfunc Call trace: memcpy+0x44/0x230 croseccheckfeatures+0x60/0xcc [crosecproto] crostypecprobe+0xe8/0x6e0 [crosectypec] platformprobe+0xa0/0xe0

Affected Software

8 affected components
Linux Kernel
Linux Linux kernel>=4.12<5.10.261
Linux Linux kernel>=5.11<5.15.212
Linux Linux kernel>=5.16<6.1.178
Linux Linux kernel>=6.2<6.6.145
Linux Linux kernel>=6.7<6.12.96
Linux Linux kernel>=6.13<6.18.39
Linux Linux kernel>=6.19<7.1.4

Event History

Jul 25, 2026
CVE Published
via MITRE·08:50 AM
Data Sourced
via MITRE·08:50 AM
DescriptionSeverity
Data Sourced
via NVD·10:17 AM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What conditions are needed to trigger the issue?

The failure path requires ec_device_probe() to fail after driver data has been made available. A sub-driver such as cros_ec_typec can then retrieve the stale platform-device pointer and access memory that has already been released.

2

Is this remotely exploitable?

The supplied CVSS vector identifies local attack access, low privileges required, no user interaction, and high impact to confidentiality, integrity, and availability. The provided information does not describe a network-reachable attack path.

3

What should be done to remediate it?

Apply an available patch that delays dev_set_drvdata() until initialization has succeeded. The listed stable kernel references provide the corresponding fixes.

4

How might affected systems present before a fix is applied?

The reported failure can include a duplicate sysfs filename error for /class/chromeos/cros_ec, followed by KASAN invalid-access reports during deferred probe work. The described access is a use-after-free involving cros_ec_typec after the ChromeOS EC device is released.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203