Комментарии 8
Какая прелесть
Всем привет!
А можно пояснительную бригаду, плиз ? :)
Выявленные Wiz-уязвимости позволяют добиться подстановки своих настроек в nginx через отправку специально оформленного ingress‑объекта напрямую в контроллер Admission
Т.е. API должен быть доступен по сети для реализации ?
Да, управляющий порт ingress-controller'а (на котором и висит этот злосчастный admissionWebhook) должен быть доступен.
Вообще, в нормальных облаках, этот порт закрыт извне, но вполне могут быть конфигурации (особенно при «умелой» самостоятельной сборке кубового облака), когда все порты торчат наружу — хотя это касается не только облаков ;). Как пишут wiz — они нашли более 6500 кластеров с публичным доступом к ingrss-controller'у.
Видимо да, это примерно так-же, как выставить открытый ssh порт с кредами вроде root:admin123. И считать это критической уязвисомтью в ssh.
Чтобы проэксплуатировать IngressNightmare, нужно сформировать вредоносный JSON с аннотациями для инъекции и отправить пару запросов в admission webhook для выполнения кода в поде ingress контроллера с доступом ко всем секретам кластера.
В оригинальной статье есть примеры запросов.
Для проверки использования уязвимого ingress-nginx можно выполнить команду: kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx.
Возможно на данный момент более точная проверка будет выглядеть так (то есть дополнительно ещё проверить и версию):kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx,app.kubernetes.io/version!=1.12.1
Выявлены критические уязвимости в Ingress Nginx для Kubernetes, позволяющие удалённо выполнять произвольный код