CVE-2019-20795: use-after-free в iproute2 до 5.1.0
В утилите iproute2 (до версии 5.1.0) обнаружена уязвимость типа use-after-free в функции get_netnsid_from_name файла ip/ipnetns.c. Проблема затрагивает системы, где iproute2 используется в конфигурациях с setuid. Критичность ограничена: эксплуатация возможна лишь при стечении ряда условий.
Подробности
Уязвимость локализована в функции get_netnsid_from_name в файле ip/ipnetns.c. Именно эта функция отвечает за получение идентификатора сетевого пространства имён (network namespace ID) по его имени. Из-за ошибки в управлении памятью программа может обратиться к участку памяти, который уже был освобождён, что в теории способно привести к некорректному поведению, аварийному завершению или в отдельных сценариях — к выполнению произвольного кода. Затронуты все версии iproute2 до 5.1.0 включительно (то есть 5.1.0 — первая исправленная версия). Уязвимость не имеет официально присвоенного значения CVSS в данной записи, однако сам характер проблемы (use-after-free) обычно оценивается как потенциально опасный. Важная оговорка содержится непосредственно в описании CVE: практическая значимость уязвимости ограничена. Речь идёт о конфигурациях, где iproute2 запускается с флагом setuid. Такая настройка не является стандартной по умолчанию, но иногда предлагается пользователям как опция. Более того, даже при использовании setuid эксплуатация может быть заблокирована другими факторами — например, конфигурацией системной библиотеки C (glibc и аналогов). Это существенно снижает реальный риск.Что делать
Основная и наиболее надёжная рекомендация — обновить iproute2 до версии 5.1.0 или более поздней. В современных дистрибутивах Linux это пакет из стандартных репозиториев, поэтому достаточно выполнить штатное обновление системы. Если обновление по каким-то причинам невозможно, следует проверить, не установлен ли на бинарные файлы iproute2 бит setuid. В большинстве случаев при корректной настройке он не требуется. Отказ от setuid для этих утилит полностью устраняет вектор, описанный в CVE. Дополнительно стоит ограничить доступ непривилегированных пользователей к соответствующим командам и придерживаться принципа минимальных привилегий. Также рекомендуется отслеживать обновления безопасности вашего дистрибутива: многие вендоры выпускают собственные патчи независимо от апстрима, и минимальная версия пакета может отличаться от номера 5.1.0. Итог: CVE-2019-20795 — умеренно опасная уязвимость use-after-free в iproute2, эксплуатация которой требует специфической конфигурации с setuid и может быть дополнительно затруднена настройками системы. Тем не менее обновление до версии 5.1.0 или новее является простым и достаточным действием для защиты.Источник: CVE Project (cvelistV5)
