CVE-2026-68335 in Linux
Сводка
по VulDB • 10.08.2026
В ядре Linux устранена следующая уязвимость:
rds: отбрасывать входящие сообщения, пересекающие границы пространств имен сети (network namespace)
Функция rds_find_bound() выполняет поиск целевого сокета с использованием глобальной хеш-таблицы (rhashtable), ключом которой служит исключительно набор параметров (addr, port, scope_id). Пространства имен сети не входят в состав ключа, поэтому отправитель из netns A может доставить входящее сообщение (inc) сокету, находящемуся в другом пространстве имен netns B.
При возникновении такой ситуации inc->i_conn указывает на структуру rds_connection, чье поле c_net соответствует netns A, тогда как принимающий сокет находится в netns B. После завершения работы дочернего процесса, создавшего netns A, функция cleanup_net() вызывает цепочку вызовов: rds_loop_exit_net() -> rds_loop_kill_conns() -> rds_conn_destroy(), что приводит к освобождению (freeing) данной структуры соединения. Если сокет-«выживший» в netns B все еще содержит ссылку на inc, любая последующая разыменовывающая операция над inc->i_conn представляет собой уязвимость use-after-free.
В функции rds_clear_recv_queue() выявлены два опасных участка: 1. inc->i_conn->c_lcong (смещение 88 от освобожденной структуры rds_connection, размер 200 байт) — чтение через функцию rds_recv_rcvbuf_delta(), что подтверждено инструментом KASAN. 2. inc->i_conn->c_trans->inc_free(inc) (указатель на функцию по смещению 80), вызываемый через rds_inc_put() при достижении счетчика ссылок inc значения ноль — то же окно гонки, потенциальная возможность выполнения кода через освобожденный объект.
Уязвимость доступна из непривилегированных пользовательских пространств имен (CLONE_NEWUSER + CLONE_NEWNET) и присутствует в ядрах Linux начиная с версии 3.8.
Исправление заключается в отклонении доставки сообщения в функции rds_recv_incoming(), если сокет, возвращаемый функцией rds_find_bound(), принадлежит другому пространству имен сети по сравнению с соединением (connection), через которое было доставлено сообщение. Для сравнения используются существующие вспомогательные функции rds_conn_net() / sock_net() и net_eq().
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.