Luka w serwerze HTTP muhttpd, która umożliwia dostęp do plików poza katalogiem roboczym

W serwerze HTTP muhttpd, stosowanym głównie w routerach i punktach dostępu, odkryto podatność (CVE-2022-31793), która umożliwia nieautoryzowanemu atakującemu za pomocą specjalnie skonstruowanego żądania HTTP pobranie dowolnych plików, w zależności od uprawnień, pod jakimi działa serwer HTTP (w wielu urządzeniach muhttpd działa z uprawnieniami root). Na przykład, atakujący może uzyskać dostęp do plików z hasłami, ustawieniami sieci bezprzewodowej, parametrami połączenia z dostawcą i kluczami prywatnymi.

Problem wynika z błędu w przetwarzaniu ścieżki w żądaniu, co pozwala na dostęp do plików spoza katalogu głównego serwera webowego. Atak polega na wskazaniu na początku ścieżki dowolnego dodatkowego znaku, innego niż kropka, ukośnik czy znak zapytania. Na przykład, aby pobrać plik /etc/hosts wystarczy wysłać żądanie „GET a/etc/hosts” lub „GET a/etc/hosts” (printf „GET b/etc/hosts” | nc serwer port).

Powodem opisanego zachowania jest to, że otwarcie żądanego pliku następuje poprzez polecenie „open(&req->filename[1], O_RDONLY)” z wcześniejszym wywołaniem funkcji chdir() w celu przejścia do katalogu głównego. serwera wwwWskazanie &req->filename[1] prowadzi do zignorowania pierwszego znaku ścieżki (deweloperzy zakładali, że pierwszy znak zawsze będzie „/”). W ten sposób, przy żądaniu „GET /etc/hosts”, serwer spróbuje otworzyć plik według względnej ścieżki „etc/hosts”, ale jeśli na początku dodamy dowolny dodatkowy znak („GET a/etc/hosts”) — późniejsza ścieżka zostanie przetworzona w całości.

Problem występuje od pierwszej wersji muhttpd i został usunięty w wydaniu 1.1.7. Z urządzeń korzystających z muhttpd potwierdzono istnienie problemu w routerach SaskTel i Arris. Potencjalnie problem ten może występować również w urządzeniach produkowanych przez AT&T, Frontier i Windstream. Przy ograniczeniu dostępu do portu HTTP tylko dla wewnętrznej sieci, atak może być przeprowadzony z zewnętrznej sieci za pomocą techniki „DNS rebinding”, umożliwiającej wysyłanie żądania HTTP na port sieciowy, który nie jest dostępny dla bezpośredniego dostępu przez internet, gdy użytkownik otworzy określoną stronę w przeglądarce.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster