Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: drm/dp_mst: Handle torn-down topology gracefully in drm_dp_mst_topology_queue_probe() A hotplug or link-loss event can tear down the MST topology (setting mgr->mst_state = false and mgr->mst_primary = NULL) concurrently with a caller invoking drm_dp_mst_topology_queue_probe(). Since the check is already performed under mgr->lock, the condition is not a programming error but a valid race -- the topology was valid when the caller decided to call this function, but was torn down before the lock was acquired. Replace the drm_WARN_ON() with a graceful early return. This eliminates spurious kernel warnings and the resulting compositor crashes observed when connecting/disconnecting DP MST monitors, while keeping the correct behavior of doing nothing when MST is not active. A drm_dbg_mst() trace is added so the skipped probe remains observable under MST debug logging. The existing WARN_ON(mgr->mst_primary) in drm_dp_mst_topology_mgr_set_mst() already catches the case where the topology is initialized twice, so no diagnostic coverage is lost.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 5f57a96e92c60f62da91d58ceb5e5acd40e7d594 before b1d05cc61dfa6c4bd5e67855bec6a03e955f512d; affected dbaeef363ea54f4c18112874b77503c72ba60fec before 4ed6d08c4a59ee6a8cb806347f6d9873de5d229e; affected dbaeef363ea54f4c18112874b77503c72ba60fec before 8c6d84a54823cd839e6ce22af559925f1320c310; affected dbaeef363ea54f4c18112874b77503c72ba60fec before afdff9103818656627920c21822e48a6dae2906f; affected dbaeef363ea54f4c18112874b77503c72ba60fec before 613059875958e7b217b250ed14c3b189f9488421; affected 6.6.86 before 6.6.148 |
| Linux / Linux | affected 6.12; unaffected 0 before 6.12; unaffected 6.6.148 through 6.6.*; unaffected 6.12.101 through 6.12.*; unaffected 6.18.42 through 6.18.*; unaffected 7.1.6 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/b1d05cc61dfa6c4bd5e67855bec6a03e955f512d
- https://git.kernel.org/stable/c/4ed6d08c4a59ee6a8cb806347f6d9873de5d229e
- https://git.kernel.org/stable/c/8c6d84a54823cd839e6ce22af559925f1320c310
- https://git.kernel.org/stable/c/afdff9103818656627920c21822e48a6dae2906f
- https://git.kernel.org/stable/c/613059875958e7b217b250ed14c3b189f9488421