drm/msm/dp: Drop aux devices together with DP controller
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.1, 6.1.189, 6.3.13, 6.4.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/msm/dp: Drop aux devices together with DP controller Using devres to depopulate the aux bus made sure that upon a probe deferral the EDP panel device would be destroyed and recreated upon next attempt. But the struct device which the devres is tied to is the DPUs (drm_dev->dev), which may be happen after the DP controller is torn down. Indications of this can be seen in the commonly seen EDID-hexdump full of zeros in the log, or the occasional/rare KASAN fault where the panel's attempt to read the EDID information causes a use after free on DP resources. It's tempting to move the devres to the DP controller's struct device, but the resources used by the device(s) on the aux bus are explicitly torn down in the error path. The KASAN-reported use-after-free also remains, as the DP aux "module" explicitly frees its devres-allocated memory in this code path. As such, explicitly depopulate the aux bus in the error path, and in the component unbind path, to avoid these issues. Patchwork: https://patchwork.freedesktop.org/patch/542163/
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 2b57f726611e294dc4297dd48eb8c98ef1938e82 · fixed in ff1338a3bfaa2f35b5f49a434f2ad6884b75fafe; From 2b57f726611e294dc4297dd48eb8c98ef1938e82 · fixed in e09ed06938807cb113cddd0708ed74bd8cdaff33; From 2b57f726611e294dc4297dd48eb8c98ef1938e82 · fixed in 2fde37445807e6e6d7981402d0bf1be0e5d81291; From 2b57f726611e294dc4297dd48eb8c98ef1938e82 · fixed in a7bfb2ad2184a1fba78be35209b6019aa8cc8d4d; From 6.0.7 · fixed in 6.1
- Linux Linux
6.1
- KernelLinux
From 6.1.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.3.13; From 6.4.0 · fixed in 6.4.4