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

i2c: imx: Fix slave registration race and error handling

In i2c_imx_reg_slave(), the slave pointer was assigned before
pm_runtime_resume_and_get(). If pm_runtime_resume_and_get() failed,
the error path returned without clearing i2c_imx->slave, leaving it
non-NULL and causing all subsequent registration attempts to fail
with -EBUSY.

Additionally, because this driver uses a shared IRQ, the interrupt
handler i2c_imx_isr() can execute concurrently and, after acquiring
slave_lock, dereference i2c_imx->slave. The previous fix attempt
added a lockless i2c_imx->slave = NULL on the error path, but that
could race with the ISR under the lock and still cause a NULL pointer
dereference.

Fix both issues by deferring the assignment of i2c_imx->slave and
i2c_imx->last_slave_event to after a successful resume, and by
performing the assignment inside the slave_lock critical section.
This guarantees that the slave pointer is never left stale on the
error path and is always valid when observed by the interrupt handler.
Published: 2026-08-28
Score: 8.4 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch Now
AI Analysis

Impact

The Linux kernel’s i2c_imx driver contains a race condition and a null pointer dereference that can lead to a denial of service. During slave registration, the driver assigns the slave pointer before successfully resuming power management. If the resume fails, the slave pointer is left non‑NULL and subsequent registrations fail with –EBUSY. Concurrent execution of the shared IRQ handler can also dereference the stale pointer while holding the slave_lock, potentially causing a crash. Fixing the race condition and ensuring the pointer is cleared on failure eliminates the possibility of a stale pointer and prevents the crash, thereby restoring reliable operation of the I2C controller.

Affected Systems

Any Linux kernel installation that includes the i2c_imx driver is potentially affected, including all i.MX platforms that rely on this I2C controller driver. The patch is applied at the kernel level, so all kernel versions prior to the commit in the linked revisions are considered vulnerable. No specific release numbers are listed, but any kernel build that contains the unpatched i2c_imx implementation is at risk.

Risk and Exploitability

The vulnerability is local and would require an attacker with the ability to trigger I2C slave registration or induce an interrupt on the shared IRQ, likely through a device connected to the affected bus. The EPSS score of <1% indicates a low probability of exploitation, and the absence of the vulnerability from the CISA KEV list suggests no known active exploits. The CVSS score of 8.4 remains high, primarily due to the potential for denial of service through repeated driver crashes or interruption of legitimate bus traffic. The likely attack vector is inferred to be local interaction with the I2C bus by a device connected to the controller, as the description does not specify remote exploitation mechanisms.

Generated by OpenCVE AI on August 29, 2026 at 08:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the kernel to a version that contains the fixed i2c_imx driver (apply the patch from the linked commits).
  • Reboot the system or reload the module to ensure the new driver is in use.
  • If a kernel update is not immediately available, disable or disconnect the affected I2C bus to prevent the fault condition from occurring.

Generated by OpenCVE AI on August 29, 2026 at 08:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4777-1 linux security update
History

Mon, 31 Aug 2026 12:15:00 +0000


Sat, 29 Aug 2026 09:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-476

Sat, 29 Aug 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 8.4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Fri, 28 Aug 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476
CWE-808

Fri, 28 Aug 2026 11:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476
CWE-808

Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: i2c: imx: Fix slave registration race and error handling In i2c_imx_reg_slave(), the slave pointer was assigned before pm_runtime_resume_and_get(). If pm_runtime_resume_and_get() failed, the error path returned without clearing i2c_imx->slave, leaving it non-NULL and causing all subsequent registration attempts to fail with -EBUSY. Additionally, because this driver uses a shared IRQ, the interrupt handler i2c_imx_isr() can execute concurrently and, after acquiring slave_lock, dereference i2c_imx->slave. The previous fix attempt added a lockless i2c_imx->slave = NULL on the error path, but that could race with the ISR under the lock and still cause a NULL pointer dereference. Fix both issues by deferring the assignment of i2c_imx->slave and i2c_imx->last_slave_event to after a successful resume, and by performing the assignment inside the slave_lock critical section. This guarantees that the slave pointer is never left stale on the error path and is always valid when observed by the interrupt handler.
Title i2c: imx: Fix slave registration race and error handling
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-29T06:22:05.188Z

Reserved: 2026-08-26T14:34:25.783Z

Link: CVE-2026-80678

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T08:16:53.107

Modified: 2026-08-29T07:16:50.230

Link: CVE-2026-80678

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-28T00:00:00Z

Links: CVE-2026-80678 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-29T08:45:03Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-476

    NULL Pointer Dereference