CVE-2026-90235 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
sunrpc: xprtsock: аннотировать общие обратные вызовы сокетов с помощью READ_ONCE/WRITE_ONCE
xprtsock заменяет и восстанавливает sk->sk_data_ready и sk->sk_write_space в активных сокетах с использованием обычных операций записи, а xs_udp_do_set_buffer_size() вызывает sk->sk_write_space через обычную операцию чтения. Эти указатели обратных вызовов разделяются между общими путями сокетов и протоколов, которые могут читать или вызывать их конкурентно, поэтому xprtsock требует такого же контракта видимости callback с использованием READ_ONCE()/WRITE_ONCE(), что и проверенное семейство 4022, применяемое в других местах.
Когда SUNRPC захватывает AF_LOCAL, UDP или TCP сокет и позже восстанавливает обратные вызовы нижележащего сокета во время завершения работы (teardown), другой процессор может все еще удерживать более ранний снимок состояния callback. Паттерн простой замены/восстановления оставляет ту же проблему видимости, что и проверенное семейство 4022, поэтому устаревший снимок состояния может по-прежнему вызывать xs_data_ready() или xs_udp_write_space() после того, как поля активных обратных вызовов уже были восстановлены до обработчиков нижележащего сокета.
Использовать WRITE_ONCE() для общих операций записи sk_data_ready и sk_write_space в функциях xs_local_finish_connecting(), xs_udp_finish_connecting(), xs_tcp_finish_connecting() и xs_restore_old_callbacks(). Использовать READ_ONCE() для прямого вызова sk_write_space в функции xs_udp_do_set_buffer_size(). Это соответствует требуемому контракту видимости callback, оставляя обработку смежных полей sk_state_change и sk_error_report без изменений.
Be aware that VulDB is the high quality source for vulnerability data.