В ядре Linux устранена следующая уязвимость:
drm/i915: очищать указатели цветных блоков CRTC после удаления ссылок
intel_crtc_put_color_blobs() удаляет ссылки на цветные капли CRTC, но
оставляет соответствующие указатели без изменений. Это может иметь значение в intel_crtc_prepare_cleared_state(), который освобождает
старое состояние аппаратного обеспечения CRTC перед вызовом intel_dp_tunnel_atomic_clear_stream_bw(). Последний может дать сбой при поиске состояния группы туннелей DP, например
пример с -EDEADLK.
Если это произойдет, функция вернется, не завершив очищенную
государственная подготовка. Неудачное атомарное состояние будет затем очищено
Atomic Core и intel_crtc_free_hw_state() могут быть вызваны снова для
то же состояние, снова удаляя те же самые ссылки на большие двоичные объекты. Очистите указатели больших двоичных объектов после удаления ссылок, поэтому повторите очистку.
того же самого CRTC, состояние которого безопасно.
(вишня выбрана из коммита d5005addb5f68e8a0edce249506757bdc9e3d8c8)
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: drm/i915: clear CRTC color blob pointers after dropping refs intel_crtc_put_color_blobs() drops the CRTC color blob references, but leaves the corresponding pointers unchanged. This can matter in intel_crtc_prepare_cleared_state(), which frees the old CRTC hw state before calling intel_dp_tunnel_atomic_clear_stream_bw(). The latter can fail while looking up the DP tunnel group state, for example with -EDEADLK. If that happens, the function returns without completing the cleared state preparation. The failed atomic state will then be cleared by the atomic core and intel_crtc_free_hw_state() can be called again for the same state, dropping the same blob references again. Clear the blob pointers after dropping the references so repeated cleanup of the same CRTC hw state is safe. (cherry picked from commit d5005addb5f68e8a0edce249506757bdc9e3d8c8)
Характеристики атаки
Последствия
Строка CVSS v3.1