CVE-2024-43098: i3c: Use i3cdev->desc->info instead of calling i3c_device_get_info() to avoid deadlock

Published Jan 11, 2025
·
Updated

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

i3c: Use i3cdev->desc->info instead of calling i3cdevicegetinfo() to avoid deadlock

A deadlock may happen since the i3cmasterregister() acquires &i3cbus->lock twice. See the log below. Use i3cdev->desc->info instead of calling i3cdeviceinfo() to avoid acquiring the lock twice.

v2: - Modified the title and commit message

============================================ WARNING: possible recursive locking detected 6.11.0-mainline -------------------------------------------- init/1 is trying to acquire lock: f1ffff80a6a40dc0 (&i3cbus->lock){++++}-{3:3}, at: i3cbusnormaluselock

but task is already holding lock: f1ffff80a6a40dc0 (&i3cbus->lock){++++}-{3:3}, at: i3cmasterregister

other info that might help us debug this: Possible unsafe locking scenario:

CPU0 ---- lock(&i3cbus->lock); lock(&i3cbus->lock);

DEADLOCK

May be due to missing lock nesting notation

2 locks held by init/1: #0: fcffff809b6798f8 (&dev->mutex){....}-{3:3}, at: driverattach #1: f1ffff80a6a40dc0 (&i3cbus->lock){++++}-{3:3}, at: i3cmasterregister

stack backtrace: CPU: 6 UID: 0 PID: 1 Comm: init Call trace: dumpbacktrace+0xfc/0x17c showstack+0x18/0x28 dumpstacklvl+0x40/0xc0 dumpstack+0x18/0x24 printdeadlockbug+0x388/0x390 lockacquire+0x18bc/0x32ec lockacquire+0x134/0x2b0 downread+0x50/0x19c i3cbusnormaluselock+0x14/0x24 i3cdevicegetinfo+0x24/0x58 i3cdeviceuevent+0x34/0xa4 devuevent+0x310/0x384 kobjectueventenv+0x244/0x414 kobjectuevent+0x14/0x20 deviceadd+0x278/0x460 deviceregister+0x20/0x34 i3cmasterregisternewi3cdevs+0x78/0x154 i3cmasterregister+0x6a0/0x6d4 mtki3cmasterprobe+0x3b8/0x4d8 platformprobe+0xa0/0xe0 reallyprobe+0x114/0x454 driverprobedevice+0xa0/0x15c driverprobedevice+0x3c/0x1ac driverattach+0xc4/0x1f0 busforeachdev+0x104/0x160 driverattach+0x24/0x34 busadddriver+0x14c/0x294 driverregister+0x68/0x104 platformdriverregister+0x20/0x30 initmodule+0x20/0xfe4 dooneinitcall+0x184/0x464 doinitmodule+0x58/0x1ec loadmodule+0xefc/0x10c8 arm64sysfinitmodule+0x238/0x33c invokesyscall+0x58/0x10c el0svccommon+0xa8/0xdc doel0svc+0x1c/0x28 el0svc+0x50/0xac el0t64synchandler+0x70/0xbc el0t64sync+0x1a8/0x1ac

Other sources

This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.

Launchpad

Affected Software

9 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel>=5.0<5.4.287
Linux Linux kernel>=5.5<5.10.231
Linux Linux kernel>=5.11<5.15.174
Linux Linux kernel>=5.16<6.1.120
Linux Linux kernel>=6.2<6.6.66
Linux Linux kernel>=6.7<6.12.5
debian/linux<=5.10.223-1
5.10.234-16.1.129-16.1.135-16.12.27-1
debian/linux-6.1
6.1.129-1~deb11u1

Event History

Jan 11, 2025
CVE Published
via MITRE·12:25 PM
Data Sourced
via MITRE·12:25 PM
Description
Data Sourced
via NVD·01:15 PM
RemedyDescriptionSeverityWeaknessAffected Software
Mar 27, 2025
Data Sourced
via Launchpad·06:44 PM
Description
May 2, 2025
Data Sourced
via Ubuntu·06:51 PM
RemedyDescriptionSeverityAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2024-43098?

CVE-2024-43098 has been classified with a severity level that indicates a potential deadlock issue in Linux kernel operations.

2

How does CVE-2024-43098 affect the Linux kernel?

CVE-2024-43098 can cause a deadlock scenario due to the i3c_master_register function acquiring a lock multiple times.

3

How can I fix CVE-2024-43098?

To resolve CVE-2024-43098, update the Linux kernel to the latest version where this vulnerability has been addressed.

4

Which versions of the Linux kernel are affected by CVE-2024-43098?

CVE-2024-43098 affects various versions of the Linux kernel including those between 5.0 to 5.4.287, 5.5 to 5.10.231, and numerous others up to 6.12.5.

5

Is there a workaround for CVE-2024-43098?

There are no publicly documented workarounds for CVE-2024-43098, and applying updates is the recommended approach.

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