#CVE #racecondition #runc #Docker #Kubernetes #root
runc (базовый инструмент запуска контейнеров в Docker и Kubernetes) содержит три критические уязвимости типа race condition. При успешной эксплуатации они позволяют обойти проверки монтирования и записи в системные интерфейсы procfs и sysfs, что открывает возможность выполнения кода с правами root на хосте.
1. CVE-2025-31133 — некорректнаяя обработка maskedPaths позволяет перенаправлять монтируемые пути, обеспечивая доступ к критичным ресурсам хоста и запись в procfs из контейнера. Есть PoC.
2. CVE-2025-52565 и CVE-2025-52881 — гонки при монтировании
/dev/console или /dev/null позволяют обходить механизмы LSM и монтировать защищенные файлы /proc для последующей модификации. Публичных PoC для этих CVE не найдено.➡️Как проходит атака
1. Атакующий запускает контейнер на уязвимой версии runc с контролем параметров монтирования.
2. Внутри контейнера инициируется серия операций монтирования, специально спроектированных как TOCTOU гонка.
3. В окне гонки злоумышленник подменяет монтируемый источник или вызывает последовательность операций, в результате чего проверки пропускают некорректное примонтирование на
/proc или /sys.4. После успешной подмены атакующий записывает значения в файлы вроде
/proc/sys/kernel/core_pattern или вызывает sysctl-подобные интерфейсы, что приводит к выполнению кода/эскалации на хосте.🪲Пример PoC на bash лежит в комментариях.
➡️Как защититься
1. Срочно обновить runc до версии 1.2.8, 1.3.3, 1.4.0-rc.3 или выше.
2. Включить user namespaces для контейнеров (ограничивает права на запись в procfs).
3. Использовать rootless контейнеры, чтобы минимизировать возможности атак.
4. Ограничить права запуска контейнеров и тщательно аудитировать параметры монтирования.
5. Следить за обновлениями платформ Docker, Kubernetes и runc, применять рекомендованные патчи и конфигурации безопасности.
🔗 Источник
🌚 @poxek | 📲 MAX |🌚 Блог | 📺 YT | 📺 RT | 📺 VK | ❤️ Мерч