Skip to main content
← All vulnerabilities
CVE-2024-57876

drm/dp_mst: Fix resetting msg rx state after topology removal

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.1.120, 5.11, 5.16, 6.3
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: drm/dp_mst: Fix resetting msg rx state after topology removal If the MST topology is removed during the reception of an MST down reply or MST up request sideband message, the drm_dp_mst_topology_mgr::up_req_recv/down_rep_recv states could be reset from one thread via drm_dp_mst_topology_mgr_set_mst(false), racing with the reading/parsing of the message from another thread via drm_dp_mst_handle_down_rep() or drm_dp_mst_handle_up_req(). The race is possible since the reader/parser doesn't hold any lock while accessing the reception state. This in turn can lead to a memory corruption in the reader/parser as described by commit bd2fccac61b4 ("drm/dp_mst: Fix MST sideband message body length check"). Fix the above by resetting the message reception state if needed before reading/parsing a message. Another solution would be to hold the drm_dp_mst_topology_mgr::lock for the whole duration of the message reception/parsing in drm_dp_mst_handle_down_rep() and drm_dp_mst_handle_up_req(), however this would require a bigger change. Since the fix is also needed for stable, opting for the simpler solution in this patch.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 6.1.18 · fixed in 6.1.120; From 5.10.173 · fixed in 5.11; From 5.15.100 · fixed in 5.16; From 6.2.5 · fixed in 6.3

  • Linux Linux

    6.3

References 4

git.kernel.org