Dawno nie było już nic o jakiejś nowej (lub nowo nagłośnionej) podatności dotyczącej (web)serwerów, więc chyba warto coś wspomnieć o HTTPoxy, czyli podatności dotyczącej CGI/FastCGI, o której od wczoraj jest dość głośno…
Spis treści w artykule [rozwiń]
HTTPoxy – a CGI application vulnerability
Oczywiście – zgodnie z trendem – skoro mamy jakiś błąd, to nie mogło zabraknąć nazwy, dedykowanej strony internetowej (choć warto też zajrzeć na stronę CERTu), i oczywiście logo:
Zmienna HTTP_PROXY
Nie będę zbytnio rozpisywał się nad samy problemem, gdyż szczegółowe informacje znajdziecie na tej stronie. Ale jakieś minimum informacyjne musi być.
Problem dotyczy kodu uruchamianego jako/w ramach CGI/FastCGI, m.in. w takich językach jak PHP, Go, Python, a do tego – by skala byłą jeszcze większa – dotyczy m.in. webserwerów działających na Apache2 i Nginx. W pewnych sytuacjach – wykorzystując konflikt nazw zmiennych środowiskowych (zmienna HTTP_PROXY) może dojść do posłuchania komunikacji wychodzącej z serwera (atak MiTM).
Ale co najważniejsze – jeśli macie na serwerze zwykłą stronę internetową, to problem dotyczy Was tylko teoretycznie, bo zapewne w takiej sytuacji nie korzystacie z serwera proxy, jak i niezależnego serwera aplikacji, z którego odpowiedź za sprawą podstawionego nagłówka HTTP_PROXY trafić może do fałszywego serwera proxy:

Źródło grafiki: Mitigating the HTTPoxy Vulnerability with NGINX
No i chyba warto wspomnieć, że nie jest to nowy błąd, tylko jak to ostatnio często bywa z pewnych przyczyn dostaje drugie, lepsze życie… ;-)
Zabezpieczamy (web)serwer
Niezależnie od tego, czy w przypadku Waszego serwera jest szansa na wykonanie tego typu ataku warto się zabezpieczyć, zwłaszcza że raczej nie powinno tu być żadnych niespodziewanych efektów ubocznych.
Webserwer Apache2
W przypadku webserwera Apache2 otwieramy plik:
sudo nano /etc/apache2/apache2.conf
I dodajemy tam linijkę:
RequestHeader unset Proxy early
sudo a2enmod headers
Następnie jeszcze test konfiguracji i restart webserwera:
sudo apache2ctl configtest
sudo service apache2 restart
Webserwer Nginx
W przypadku webserwera Nginx otwieramy plik:
sudo nano /etc/nginx/fastcgi.conf
I dodajemy linijkę:
fastcgi_param HTTP_PROXY "";
sudo nano /etc/nginx/fastcgi_params
Cloudflare
Jeśli korzystacie z Cloudflare, i macie aktywny przynajmniej plan pro, to możecie aktywować filtrowanie tego typu ataków za pomocą Web Application Firewall (WAF), aktywując regułę nr 100050.


- Wtyczka BackWPup w wersji 5.x to doskonały przykład, jak wylać dziecko z kąpielą i z relatywnie świetnego narzędzia zrobić właściwie bezwartościowego gniota - 1970-01-01
- Testowy przelew w Bitcoinach z najniższą prowizją, czyli krótka historia o tym, jak zamroziłem BTC na (ponad) rok - 1970-01-01
- Nowy system kopii zapasowych w Home Assistant 2025.1 to zapewne krok w dobrym kierunku, ale zdecydowanie przedwczesny - 1970-01-01