Zero-day zraniteľnosť služby Nginx
V službe Nginx bola objavená zero-day zraniteľnosť, ktorá sa nachádza v module LDAP-auth. Útočník môže po jej zneužití vykonávať kód na diaľku. Spoločnosť Nginx, ktorá službu vyvíja, oznámila, že služby Nginx Open Source a Nginx Plus nie sú zraniteľné. Zraniteľná je iba verzia, ktorá používa implementáciu Nginx reference. Zraniteľnosť je aktívne zneužívaná.
Opis činnosti:
Nginx je webový server, ktorý môže byť použitý aj ako http cache, reverse proxy, mail proxy a load balancer. Lightweight Directory Access Protocol (LDAP) je protokol, ktorý umožňuje prístup k dátam v doménových službách. V spomínanej Nginx reference implementácii sa nachádza modul tretej strany LDAP-auth, ktorý obsahuje zraniteľnosť umožňujúcu vzdialene vykonávať kód.
Služba sa stáva zraniteľnou v nasledujúcich prípadoch:
- Pri konfigurácii modulu LDAP pomocou argumentov v príkazovom riadku, pokiaľ je použitý Python Daemon. Útočník môže pomocou http požiadavky prepísať niektoré parametre, ktoré boli špecifikované v príkazovom riadku pri spúšťaní služby.
- V konfigurácii sa nenachádzajú voliteľné parametre. Podobne ako v prvom prípade môže útočník pozmeniť jednotlivé nastavenia za predpokladu, že nie sú explicitne nastavené v konfigurácii.
- LDAP overenie závisí na špecifickom skupinovom členstve. Pri zneužití posledného bodu môže útočník poslať špeciálne modifikovanú požiadavku, ktorá obíde skupinové členstvo používateľa. Útočník sa dokáže prihlásiť ako používateľ, ktorý nepatrí do požadovaných skupín.
Zraniteľné systémy:
- Verzia 1.18
Závažnosť zraniteľnosti: Kritická
Možné škody:
- Vzdialené vykonávanie kódu
Odporúčania:
Odporúčame v konfigurácii služby vypnúť nastavenie ldapDaemon.enabled. Avšak, ak plánujete túto službu používať, je potrebné zmeniť predvolené nastavenie ldapDaemon.ldapConfig.
Mitigácia jednotlivých bodov spomínaných vyššie:
- Tento problém môžeme ošetriť tým, že zakážeme prijímanie požiadaviek pri procese autentifikácie. To môžeme dosiahnuť nastavením proxy_pass_request_headers na off a proxy_set_header na Authorization $http_authorization. Viac informácií tu…
- Riešenie pre tento problém je rovnaké, ako v predchádzajúcom bode. Viac informácií tu…
- Je potrebné orezať špeciálne znaky z používateľského mena v požiadavke. Viac informácií tu…
Odkazy:
https://securityonline.info/nginx-zero-day-rce-vulnerability-alert/