
PoC для CVE-2025-1974: Критическая RCE в Ingress-NGINX (<v1.12.1) через небезопасную инъекцию конфигурации. Эксплуатируется из сети pod без учетных данных, что позволяет выполнять код и потенциально захватить кластер. Исправлено в v1.12.1 и v1.11.5. Только для исследований/обучения.
⚠️ Критическое RCE в Ingress-NGINX через инъекцию конфигурации (CVE-2025-1974 и другие)
Этот репозиторий содержит доказательство концепции (PoC) эксплуатации CVE-2025-1974, критической (CVSS 9.8) уязвимости в контроллере Ingress-NGINX для Kubernetes. Эта ошибка позволяет неаутентифицированное удаленное выполнение кода через небезопасную инъекцию конфигурации при использовании Validating Admission Controller. Это самая серьезная из пяти уязвимостей, раскрытых и исправленных 26 марта 2025 года.
📌 Воздействие:
• Затронутые версии: Ingress-NGINX controller до v1.12.1 / v1.11.5
• Поверхность атаки:
• Доступна любой рабочей нагрузке в сети Pod — не требуются учетные данные или права администратора
• Атакующие могут внедрять произвольные директивы NGINX (например, content_by_lua_block) через аннотации, такие как configuration-snippet
• В сочетании с неправильной конфигурацией атакующие могут извлечь Secrets или добиться полного компромета кластера
• Область:
• Ingress-NGINX часто имеет доступ ко всем Secrets кластера по умолчанию
• Pods в типичном облачном VPC или корпоративной сети могут достичь конечной точки admission controller
• Затронутые кластеры включают те, где работает Ingress-NGINX с включенным admission control (по умолчанию во многих конфигурациях)
🛡️ Меры защиты:
• Обновитесь до Ingress-NGINX v1.12.1 или v1.11.5
• Отключите рискованные аннотации (configuration-snippet, server-snippet и т.д.)
• Ограничьте сетевой доступ к Validating Admission Webhook
• Примените строгие RBAC для предотвращения создания Ingress без авторизации
🧪 Этот PoC демонстрирует, как атакующие могут использовать уязвимость для выполнения произвольного кода внутри pod контроллера ingress, который часто имеет доступ к внутренним сервисам и secrets, что приводит к полному захвату кластера в уязвимых конфигурациях.
🚨 Отказ от ответственности: Этот PoC предназначен только для образовательных и исследовательских целей. Не используйте его без явного разрешения.