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

drm/xe/i2c: cancel the client work on remove

xe_i2c_notifier() stores the DesignWare adapter in i2c->adapter and
schedules i2c->work when the adapter is registered under the xe I2C
platform device, and xe_i2c_client_work() then instantiates the AMC
client device on that adapter.

xe_i2c_remove() tears down the AMC, unregisters the client devices,
the bus notifier and the adapter platform device, but it never drains
i2c->work. A work item that is still queued or running when the
adapter is unregistered dereferences i2c->adapter in
i2c_new_client_device() after platform_device_unregister() has
released the adapter. The work item is also embedded in the
devm-allocated struct xe_i2c, so a work item still queued after the
drm device devm unwind frees that allocation runs its callback on
freed memory.

The bus notifier is the only thing that schedules this work, and it is
unregistered after the client devices. An instance that is still queued
when the teardown runs can therefore write
i2c->client[XE_I2C_CLIENT_AMC] while the loop is unregistering and
clearing the same array, and an AMC client it instantiates late is only
cleaned up by the adapter's own child sweep in i2c_del_adapter().

Move bus_unregister_notifier() in front of the client teardown loop
and cancel the work right after it, so no new instance can be
scheduled and a queued instance is drained before the client array is
touched. A running instance still finds a live adapter, since the
adapter is unregistered later.

(cherry picked from commit a23f27d5ec11c3f418c5e5531eea34ccda2b5b20)
Published: 2026-10-23
Score: 4.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Kernel use‑after‑free leading to memory corruption
Action: Apply patch
AI Analysis

Impact

The flaw occurs when the DRM/xe I2C driver removes an adapter without draining scheduled work. A queued work item may continue to run after the adapter has been unregistered and the backing structure freed, causing a use‑after‑free on kernel memory. This can corrupt kernel data structures and lead to a crash or, if an attacker can influence the work payload, a form of arbitrary kernel memory write.

Affected Systems

Any Linux kernel that implements the drm/xe/i2c DesignWare adapter driver before the patched commit is affected. No specific kernel version numbers are listed in the advisory, so all kernels derived from source containing the old notifier logic are considered at risk until the fix is applied.

Risk and Exploitability

The CVSS score of 4.1 indicates moderate severity, and the EPSS score is <1%, indicating a low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. The likely attack vector is a local privileged context that can trigger the removal of the I2C device, such as a privileged process or a management script. The use‑after‑free nature of the flaw suggests a high impact if exploited, potentially causing a kernel panic or enabling an attacker to corrupt memory if further controls (e.g. the work queue payload) can be manipulated. The overall risk is elevated due to the kernel‑level memory corruption potential, but exploitation requires local privilege or the ability to control the driver removal sequence.

Generated by OpenCVE AI on October 29, 2026 at 14:37 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a Linux kernel that contains the commit fixing the work cancellation during adapter removal
  • Disable or unload the DRM/xe I2C driver (e.g., via modprobe -r or by removing device‑tree entries) to prevent its use on the system
  • Limit local privileged users’ ability to trigger driver removal or device shutdowns to reduce the attack surface

Generated by OpenCVE AI on October 29, 2026 at 14:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 29 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Fri, 23 Oct 2026 19:45:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Fri, 23 Oct 2026 17:15:00 +0000

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

Fri, 23 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/xe/i2c: cancel the client work on remove xe_i2c_notifier() stores the DesignWare adapter in i2c->adapter and schedules i2c->work when the adapter is registered under the xe I2C platform device, and xe_i2c_client_work() then instantiates the AMC client device on that adapter. xe_i2c_remove() tears down the AMC, unregisters the client devices, the bus notifier and the adapter platform device, but it never drains i2c->work. A work item that is still queued or running when the adapter is unregistered dereferences i2c->adapter in i2c_new_client_device() after platform_device_unregister() has released the adapter. The work item is also embedded in the devm-allocated struct xe_i2c, so a work item still queued after the drm device devm unwind frees that allocation runs its callback on freed memory. The bus notifier is the only thing that schedules this work, and it is unregistered after the client devices. An instance that is still queued when the teardown runs can therefore write i2c->client[XE_I2C_CLIENT_AMC] while the loop is unregistering and clearing the same array, and an AMC client it instantiates late is only cleaned up by the adapter's own child sweep in i2c_del_adapter(). Move bus_unregister_notifier() in front of the client teardown loop and cancel the work right after it, so no new instance can be scheduled and a queued instance is drained before the client array is touched. A running instance still finds a live adapter, since the adapter is unregistered later. (cherry picked from commit a23f27d5ec11c3f418c5e5531eea34ccda2b5b20)
Title drm/xe/i2c: cancel the client work on remove
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 Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-23T12:20:21.753Z

Reserved: 2026-09-25T10:25:14.385Z

Link: CVE-2026-99001

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:22.440

Modified: 2026-10-23T13:17:22.440

Link: CVE-2026-99001

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-23T00:00:00Z

Links: CVE-2026-99001 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T14:45:14Z

Weaknesses
  • CWE-362

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

  • CWE-416

    Use After Free

  • CWE-825

    Expired Pointer Dereference