HIGH
mtk-mdp3 SCP UAF
CVE-2026-89885
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
KernelScan AI6.9MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: media: platform: mtk-mdp3: Fix SCP device refcounting mdp_probe() first tries to get the SCP handle with scp_get(). When that fails, it falls back to looking up the SCP platform device with __get_pdev_by_id() and then reads its driver data. The fallback lookup returns the platform device with a reference, just like scp_get() does. However, the fallback path currently drops that reference immediately after platform_get_drvdata(). The driver later still calls scp_put(mdp->scp) unconditionally from the probe error path and from mdp_video_device_release(), which drops the SCP device reference again. Keep the fallback reference until the existing scp_put() call, so that the fallback path follows the same ownership rules as the scp_get() path.
02KernelScan AI Analysis
Risk summary
A refcounting error in the MediaTek MDP3 driver causes a double-put of the SCP platform device reference during probe, leading to a use-after-free. Any device using this specific MediaTek media hardware is affected; the bug triggers automatically during driver initialization without user action. Exploitation can result in kernel memory corruption, information disclosure, or a system crash.
Vulnerability analysis
During driver probe, the MediaTek MDP3 driver has a fallback path that looks up the SCP platform device and immediately drops the device reference it obtained, while still storing the SCP handle for later use. When the driver later tears down—either on a probe error or when the video device is released—it unconditionally calls the SCP cleanup function, which drops the same reference a second time. This double-put can cause the SCP device object to be freed prematurely while the driver still holds a pointer to it, resulting in a use-after-free. The fix removes the premature reference drop so the fallback path retains ownership until the existing cleanup call, matching the normal path's lifecycle. The vulnerable code path is reached automatically during driver probe on systems with MediaTek MDP3 hardware; no network access or special user privileges are needed to trigger it, though exploiting the resulting memory corruption requires local code execution on the affected device.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.12.64 | 6.12.110 | dce13bd9bade |
| 6.18 | 6.18.4 | 6.18.51 | 252850653569 |
| mainline | — | 7.3-rc1 | 55793e4665b7 |
| 7.2 | — | 7.2.5 | 0259ade4c4ce |
| cip/6.12 | — | 6.12.111-cip32 | dce13bd9bade |