În proiectul în dezvoltare Kubernetes ingress-controller ingress-nginx au fost identificate trei vulnerabilități care permit, în configurația implicită, accesul la setările obiectului Ingress, unde, printre altele, sunt stocate și datele de autentificare pentru accesarea serverelor Kubernetes, oferind acces privilegiat la cluster. Problemele apar doar în ingress-controller ingress-nginx al proiectului Kubernetes și nu afectează controller-ul kubernetes-ingress, dezvoltat de echipa NGINX.
Ingress-controller-ul funcționează ca un gateway și este folosit în Kubernetes pentru a organiza accesul din rețeaua externă la serviciile din interiorul cluster-ului. Controller-ul ingress-nginx este cel mai popular și utilizează serverul NGINX pentru redirecționarea apelurilor către cluster, rutarea cererilor externe și balancearea încărcăturii. Proiectul Kubernetes oferă ingress-controller-e de bază pentru AWS, GCE și nginx, ultimul nefiind legat de controller-ul kubernetes-ingress, întreținerea căruia este asigurată de compania F5/NGINX.

Vulnerabilitățile CVE-2023-5043 și CVE-2023-5044 permit execuția de cod personal server cu privilegii de proces ingress-controller, folosind pentru substituirea acestuia parametrii „nginx.ingress.kubernetes.io/configuration-snippet” și „nginx.ingress.kubernetes.io/permanent-redirect”. Printre altele, privilegiile obținute permit extragerea token-ului utilizat pentru autentificarea la nivel de management al cluster-ului. Vulnerabilitatea CVE-2022-4886 permite evitarea verificării căilor de fișiere, utilizând directiva log_format.
Primele două vulnerabilități sunt prezente doar în versiunile ingress-nginx până la 1.9.0, iar ultima până la 1.8.0. Pentru a realiza un atac, atacatorul trebuie să aibă acces la configurația obiectului ingress, de exemplu, în clusterele Kubernetes multi-utilizator, unde utilizatorii au posibilitatea de a crea obiecte în propriul spațiu de nume.
Sursa: opennet.ro
