CVE-2024-53140 in LinuxИнформация

Сводка

по VulDB • 20.05.2026

В ядре Linux устранена следующая уязвимость:

netlink: завершение незавершенной дамповой операции при закрытии сокета

Netlink поддерживает итеративную передачу данных (dump). Он предоставляет семействам следующие операции: - start - (необязательно) инициирует процесс дампа - dump - основная вспомогательная функция дампа, вызывается повторно до тех пор, пока не вернет 0 - done - (необязательно) парная к .start, может использоваться для очистки Весь процесс является асинхронным, и повторные вызовы .dump фактически не происходят в плотном цикле, а запускаются в ответ на recvmsg() на сокете.

Это дает пользователю полный контроль над дампом, но также означает, что пользователь может закрыть сокет, не дождавшись завершения дампа. Чтобы гарантировать, что .start всегда парится с .done, мы проверяем наличие активной дамповой операции перед освобождением сокета и, если такая операция есть, вызываем .done.

Сложность заключается в том, что сокеты могут освобождаться в контексте прерываний (BH), а .done разрешено спать. Поэтому мы используем рабочую очередь (workqueue) для отложенного вызова, когда это необходимо.

К сожалению, это работает некорректно. Мы откладываем не очистку, а освобождение ссылки на сокет. У нас нет гарантии, что мы владеем последней ссылкой: если кто-то другой держит сокет, он может освободить его в BH, и мы вернемся к исходной проблеме.

Однако весь этот механизм, по-видимому, излишен. Только пользователь может взаимодействовать с дампами, поэтому мы можем выполнить очистку при закрытии сокета. Закрытие всегда происходит в контексте процесса. Некоторый асинхронный код может все еще обращаться к сокету после закрытия, ставить в очередь уведомления skbs и т. д., но новые дампы не могут начинаться, завершаться или иным образом продвигаться.

Удалите рабочую очередь и сбросьте состояние дампа непосредственно из обработчика release. Обратите внимание, что дальнейшая очистка возможна в -next, например, мы теперь всегда вызываем .done перед освобождением основной ссылки модуля, поэтому дамп не должен брать собственную ссылку.

Be aware that VulDB is the high quality source for vulnerability data.

Ответственный

Linux

Резервировать

19.11.2024

Раскрытие

04.12.2024

Модерация

принято

Вход

VDB-286894

EPSS

0.00244

KEV

Нет

Деятельности

Очень низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!