CVE-2022-50370: i2c: designware: Fix handling of real but unexpected device interrupts

Published Sep 17, 2025
·
Updated

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

i2c: designware: Fix handling of real but unexpected device interrupts

Commit c7b79a752871 ("mfd: intel-lpss: Add Intel Alder Lake PCH-S PCI IDs") caused a regression on certain Gigabyte motherboards for Intel Alder Lake-S where system crashes to NULL pointer dereference in i2cdwxfermsg() when system resumes from S3 sleep state ("deep").

I was able to debug the issue on Gigabyte Z690 AORUS ELITE and made following notes:

- Issue happens when resuming from S3 but not when resuming from "s2idle" - PCI device 00:15.0 == i2cdesignware.0 is already in D0 state when system enters into pcipmresumenoirq() while all other i2cdesignware PCI devices are in D3. Devices were runtime suspended and in D3 prior entering into suspend - Interrupt comes after pcipmresumenoirq() when device interrupts are re-enabled - According to register dump the interrupt really comes from the i2cdesignware.0. Controller is enabled, I2C target address register points to a one detectable I2C device address 0x60 and the DWICRAWINTRSTAT register STARTDET, STOPDET, ACTIVITY and TXEMPTY bits are set indicating completed I2C transaction.

My guess is that the firmware uses this controller to communicate with an on-board I2C device during resume but does not disable the controller before giving control to an operating system.

I was told the UEFI update fixes this but never the less it revealed the driver is not ready to handle TXEMPTY (or RXFULL) interrupt when device is supposed to be idle and state variables are not set (especially the dev->msgs pointer which may point to NULL or stale old data).

Introduce a new software status flag STATUSACTIVE indicating when the controller is active in driver point of view. Now treat all interrupts that occur when is not set as unexpected and mask all interrupts from the controller.

Affected Software

4 affected components
Linux Kernel
Linux Linux kernel>=5.12<5.15.75
Linux Linux kernel>=5.16<5.19.17
Linux Linux kernel>=6.0<6.0.3

Event History

Sep 17, 2025
CVE Published
via MITRE·02:56 PM
Data Sourced
via MITRE·02:56 PM
Description
Data Sourced
via NVD·03:15 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-50370?

CVE-2022-50370 has been classified as a medium severity vulnerability.

2

How do I fix CVE-2022-50370?

To fix CVE-2022-50370, update your Linux kernel to the latest version that includes the patch for this vulnerability.

3

What systems are affected by CVE-2022-50370?

CVE-2022-50370 affects certain configurations of the Linux kernel, specifically on impacted Gigabyte motherboards with Intel Alder Lake processors.

4

What are the potential impacts of CVE-2022-50370?

The potential impacts of CVE-2022-50370 include unexpected behavior related to device interrupts, which may lead to system instability.

5

Was there a regression caused by CVE-2022-50370?

Yes, CVE-2022-50370 was associated with a regression issue that impacted functionality on specific hardware setups.

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