KernelScan.io

HIGH Introduced in 5.2

i2c Callback UAF

CVE-2026-80680

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.9MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: i2c: amd-mp2: Unregister callback on adapter add failure amd_mp2_register_cb() stores the platform I2C context in the MP2 PCI driver's callback table before the adapter is registered. If i2c_add_adapter() fails, probe returns and devres frees the context, but the PCI driver can still dereference the stale pointer from its IRQ and system-sleep callbacks. Unregister the callback before returning the adapter registration error.

02

Engine v0.6.0

Risk summary

A use-after-free exists in the AMD MP2 I2C platform driver where a stale callback pointer remains in the PCI driver's callback table after adapter registration fails and the context is freed. An interrupt or system-sleep transition can then dereference the freed memory. This requires AMD PCIe MP2 I2C controller hardware to be present and a local attacker able to influence adapter registration failure.

Affecteddrivers/i2c/busses/i2c-amd-mp2-plat.c (i2c amd-mp2)

Vulnerability analysis

During device initialization, the platform driver saves a callback pointer in the PCI driver's table before registering the I2C adapter. If adapter registration fails, initialization returns an error and the kernel automatically frees the platform context, but the callback pointer remains in the PCI driver's table. A later interrupt or system suspend/resume event can then dereference the freed memory, causing a use-after-free. The fix removes the callback in the failure path so the PCI driver no longer holds a stale pointer. This vulnerability only affects systems with the AMD PCIe MP2 I2C controller hardware, and an attacker would need local access to influence the adapter registration failure and then wait for an interrupt or suspend/resume cycle to trigger the stale dereference.

03

BranchIntroducedFixed inPatch commit
5.105.25.10.2659142a3dcff0d
5.155.25.15.2162f7789b3a962
6.15.26.1.1834786d4d70dcd
6.125.26.12.103cf107c5983dc
6.185.26.18.441883a09a37fe
6.65.26.6.151b7c2c5c88687
7.15.27.1.88bf719659406
mainline5.27.282048795242f
cip/5.105.25.10.268-cip779142a3dcff0d
cip/5.10-rt5.25.10.268-cip77-rt349142a3dcff0d
cip/6.15.26.1.187-cip604786d4d70dcd
cip/6.1-rt5.26.1.189-cip61-rt324786d4d70dcd
cip/6.125.26.12.104-cip30cf107c5983dc

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.104-cip30
cip/6.1Fixed in 6.1.187-cip60
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.268-cip77
cip/5.10-rtFixed in 5.10.268-cip77-rt34