В разработвания ingress-контролера ingress-nginx на Kubernetes са идентифицирани три уязвимости, позволяващи в конфигурацията по подразбиране достъп до настройките на обекта Ingress, в които, наред с другото, са съхранени и удостоверителни данни за достъп до сървърите на Kubernetes, което позволява привилегирован достъп до клъстера. Проблемите се проявяват само в ingress-контролера ingress-nginx от проекта Kubernetes и не засягат контролера kubernetes-ingress, разработван от разработчиците на NGINX.
Ingress-контролерът играе роля на шлюз и се използва в Kubernetes за организиране на достъп от външната мрежа до услугите в клъстера. Контролерът ingress-nginx е най-популярният и прилага сървър NGINX за организиране на пренасочване на запитвания към клъстера, маршрутизиране на външни заявки и балансиране на натоварването. Проектът Kubernetes предоставя основни ingress-контролери за AWS, GCE и nginx, последният от които не е свързан с контролера kubernetes-ingress, който се поддържа от компанията F5/NGINX.

Уязвимости CVE-2023-5043 и CVE-2023-5044 позволяват да се изпълни собствен код на сървър с правата на процеса на ingress-контролера, използвайки параметрите «nginx.ingress.kubernetes.io/configuration-snippet» и «nginx.ingress.kubernetes.io/permanent-redirect». Наред с другото, получените права позволяват извличането на токена, използван за удостоверяване на ниво за управление на клъстера. Уязвимостта CVE-2022-4886 позволява заобикаляне на проверките на файловите пътища, използвайки директивата log_format.
Първите две уязвимости се проявяват само в изданията на ingress-nginx до версия 1.9.0, а последната — до версия 1.8.0. За осъществяване на атаката, нарушителят трябва да има достъп до конфигурацията на ingress-обекта, например в много потребителски клъстери на Kubernetes, където на потребителите е предоставена възможност за създаване на обекти в своето пространство от име.
Източник: opennet.ru
