Zowopsa zinayi zadziwika mu ingress-nginx ingress controller yopangidwa ndi Kubernetes project, yomwe imalola wowukira kuti apereke ma code awo pa ma seva a mtambo pogwiritsa ntchito nsanja ya Kubernetes ndikupeza mwayi wathunthu kugulu la Kubernetes. Nkhanizi zimaonedwa kuti ndizofunika kwambiri (9.8 mwa 10). Ofufuza omwe adazindikira zovutazo adalemba dzina lavulnerabilities IngressNightmare ndipo adanena kuti zofooka zimakhudza pafupifupi 43% ya malo amtambo. Zowonongeka zakhazikitsidwa mumitundu ya ingress-nginx 1.11.5 ndi 1.12.1.
Ingress-контроллер выступает в роли шлюза и используется в Kubernetes для организации доступа из внешней сети к сервисам внутри кластера. Контроллер ingress-nginx является наиболее популярным и применяет Seva NGINX для проброса обращений к кластеру, маршрутизации внешних запросов и балансировки нагрузки. Проект Kubernetes предоставляет базовые ingress-контроллеры для AWS, GCE и nginx, последний из которых никак не связан с контроллером kubernetes-ingress, сопровождением которого занимается компания F5/NGINX (рассматриваемые уязвимости не затрагивают проекты, развиваемые разработчиками NGINX, упоминание nginx в названии ingress-nginx связано лишь с задействованием nginx в качестве прокси).
Zowonongeka zimalola wowukira wosavomerezeka kuti akwaniritse ma code poyang'anira ingress-nginx controller, ndi kuthekera kotumiza pempho kwa Wothandizira ukonde wa Admission. Pakuwunika kwa netiweki, magulu opitilira 6500 omwe ali pachiwopsezo cha Kubernetes adadziwika omwe amagwiritsa ntchito owongolera omwe ali pachiwopsezo chopezeka ndi anthu omwe ali ndi Admission handler omwe amakumana ndi zopempha zakunja.
Pakusintha kosasintha, kachidindo koyambitsidwa ndi wowukirayo kumatha kufikira zosintha za Ingress, zomwe, mwa zina, zimasunga zidziwitso zofikira ma seva a Kubernetes, kulola mwayi wopeza gulu lonselo. Monga njira yogwirira ntchito, tikulimbikitsidwa kuletsa mawonekedwe a "Validating Admission Controller" mu ingress-nginx.
Woyang'anira Admission amayendetsa malo osiyana a pod ndikuchita ntchito yotsimikizira zinthu zomwe zimalowa zisanatumizidwe. Mwachikhazikitso, woyang'anira tsamba la Admission amavomereza zopempha zosavomerezeka kuchokera pa netiweki yapagulu. Pochita cheke, woyang'anira Admission amapanga kasinthidwe ka seva ya nginx http kutengera zomwe zalandilidwa ndikuwunika kulondola kwake.
Zofooka zomwe zazindikirika zimakulolani kuti musinthe makonda anu mu nginx potumiza chinthu chopangidwa mwapadera cholowera mwachindunji kwa woyang'anira Admission. Ofufuzawo adapeza kuti zinthu zina za zopempha zoyeserera, zomwe zimayikidwa mugawo la ".request.object.annotations", zimalowetsedwa m'malo mwa nginx kasinthidwe. Pankhaniyi, kasinthidwe kopangidwa sikumagwiritsidwa ntchito, koma kumangoyesedwa ndikuyendetsa fayilo "nginx" ndi kusankha "-t".
Makamaka, kusintha kwa data kunja kwa kasinthidwe kumachitika pazigawo za "mirror-target", "mirror-host" (CVE-2025-1098), "auth-tls-match-cn" (CVE-2025-1097) ndi "auth-url" (CVE-2025-24514). Mwachitsanzo, pamzere wochunira "khazikitsani $target {{$externalAuth.URL }};" m'malo mwa "{{$externalAuth.URL }}" ulalo wotchulidwa mu "auth-url" parameter wasinthidwa. Pamenepa, kulondola kwa ulalo sikufufuzidwa. Chifukwa chake, wowukira atha kupereka mtengo wa URL ngati "http://example.com/#;\settings" ndikusintha zokonda zawo mufayilo yosinthira.
Kuti agwiritse ntchito ma code osasinthika panthawi yoyang'anira makonzedwe ndi lamulo la "nginx -t", ofufuzawo adagwiritsa ntchito mfundo yakuti, kuwonjezera pa kuyang'anira ma syntax, nginx imakweza malaibulale ndi ma module ndikutsegula mafayilo omwe atchulidwa mu kasinthidwe kuti awone kupezeka kwawo. Pakati pa zinthu zina, pokonza malangizo a ssl_engine, laibulale yogawana yomwe yatchulidwa mu malangizo imayikidwa. SSL-injini.
Kuti akweze laibulale yawo pa seva ya Kubernetes, ofufuzawo adagwiritsa ntchito mwayi (CVE-2025-1974) kuti pokonza zopempha zazikulu, nginx imasunga zopemphazo mufayilo yosakhalitsa yomwe imachotsedwa nthawi yomweyo, koma fayilo yotseguka ya fayiloyi imakhalabe mu fayilo ya "/proc". Mwanjira imeneyi, ndizotheka kutumiza zopempha kuti musunge fayilo kwakanthawi ndikuyambitsa cheke chosinthira momwe malangizo a "ssl_engine" amafotokozera njira yofotokozera mu fayilo ya "/proc".
Kuti chofotokozera cha fayilo chikhalepo kwa nthawi yaitali, mtengo wa "Content-Length" mu pempho ukhoza kutchulidwa kuti ndi waukulu mwadala kuposa deta yeniyeni yomwe yasamutsidwa (seva idzadikira kuti ilandire deta yotsala). Vuto linanso ndilofunika kulosera za PID ndi nambala yofotokozera mafayilo okhudzana ndi laibulale yomwe idasungidwa, koma popeza chidebecho chimagwiritsa ntchito njira zochepa zoyendetsera, zomwe zimafunikira zimaganiziridwa ndi mphamvu mwankhanza pamayesero angapo. Ngati zikuyenda bwino ndikulowa m'malo mwa laibulale yogawidwa, wowukirayo atha kupeza magawo omwe amasungidwa mkati mwa malo a pod, okwanira kuwongolera gulu lonselo.
Kuti muwone ngati ingress-nginx yomwe ili pachiwopsezo ikugwiritsidwa ntchito, mutha kuyendetsa lamulo: kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
Source: opennet.ru
