В ядре Linux устранена следующая уязвимость:
kcm: используйте WRITE_ONCE() при изменении обратных вызовов нижнего сокета
kcm_attach() заменяет sk_data_ready и действующий нижний TCP-сокет.
обратные вызовы sk_write_space с обработчиками KCM и восстановление kcm_unattach().
их позже. Эти обновления указателей обратного вызова по-прежнему остаются обычными хранилищами, даже
хотя одни и те же поля могут читаться и вызываться одновременно на других
процессоры. Если другой ЦП обнаруживает более старый снимок обратного вызова после живого поля
уже восстановлен, выполнение обратного вызова может выполняться с несовпадающим
target и sk_user_data, что приводит к устаревшим или ошибочным пробуждениям.
Используйте WRITE_ONCE() для операций замены и восстановления обратного вызова, чтобы
эти общие поля обратного вызова уже следуют одному и тому же контракту видимости
установлено предыдущими исправлениями 4022.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: kcm: use WRITE_ONCE() when changing lower socket callbacks kcm_attach() replaces a live lower TCP socket's sk_data_ready and sk_write_space callbacks with KCM handlers, and kcm_unattach() restores them later. Those callback-pointer updates are still plain stores even though the same fields can be read and invoked concurrently on other CPUs. If another CPU observes an older callback snapshot after the live field has already been restored, callback execution can run with a mismatched target and sk_user_data state, leading to stale or misdirected wakeups. Use WRITE_ONCE() for the callback replacement and restore operations so these shared callback fields follow the same visibility contract already established by the earlier 4022 fixes.
Характеристики атаки
Последствия
Строка CVSS v3.1