Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: drm/rockchip: inno-hdmi: Switch to drmm_kzalloc() Driver makes use of drmm_encoder_init() to initialize the encoder and automatically handle the cleanup by registering drm_encoder_cleanup() with drmm_add_action(). However, the internal structure containing the encoder part gets allocated with devm_kzalloc(), which happens while component_bind_all() is being called from Rockchip DRM driver. The component framework further ensures it is deallocated as part of releasing all the resources claimed during bind, which is triggered from component_unbind_all(). When the reference to the DRM device gets eventually dropped via drm_dev_put() in rockchip_drm_unbind(), drmm_encoder_alloc_release() attempts to access the now released encoder structure, leading to use-after-free. Ensure driver's internal structure is still reachable on encoder cleanup by switching from a device-managed allocation to a drm-managed one.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 969325a2597ebc4cb001a92992f06f698ab2b467 before 195ab348af4b2bdf5988f9397059317bb68fd797; affected 969325a2597ebc4cb001a92992f06f698ab2b467 before 3cc50e7f73fcf79f28660b9d91566b13cb62e520 |
| Linux / Linux | affected 7.0; unaffected 0 before 7.0; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.