CVE-2026-55612
NiskieCVSS 3.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
uhttpd to mały serwer HTTP. W niezałatanych migawkach repozytorium funkcja client_poll_post_data() w client.c przetwarza nieprawidłową linię długości fragmentu (np. rozmiar przekraczający INT_MAX), a następnie czyści r->content_length i r->transfer_chunked bez opróżnienia pozostałej treści lub ustawienia request.connection_close. Kontrolowane przez atakującego bajty treści wyrównane jako kompletne żądanie HTTP są następnie przetwarzane jako kolejne żądanie w tym samym połączeniu, powodując przemyt żądań HTTP (HTTP request smuggling) i desynchronizację granic żądań.
Ocena ryzyka
Naruszenie integralności i poufności — atakujący może przemycić żądania HTTP, co może prowadzić do obejścia kontroli bezpieczeństwa, zatrucia pamięci podręcznej lub przejęcia sesji. Może to dotknąć systemów korzystających z uhttpd.
Rekomendacja
Zaktualizuj uhttpd do wersji zawierającej poprawki (commity b78f518478794e16ba3568fc1258e40bf3e8eb3b i 34460b8211d676ef1b9f40d6b775c5e112933690). Zweryfikuj konfigurację serwera pod kątem podatności na przemyt żądań.
Inne podatności w uhttpd
Zobacz wszystkie- CVE-2026-63586Krytyczne
Interfejs zarządzania oparty na sieci Web używa zmodyfikowanego serwera uhttpd ze skryptami CGI w powłoce. Nazwa użytkownika HTTP Basic Authentication, pobierana bezpośrednio z nagłówka Authorization bez sanityzacji, jest wstawiana do ciągu poleceń powłoki wykonywanego przez funkcję system(). Przesyłając specjalnie spreparowaną nazwę użytkownika zawierającą metaznaki powłoki, nieuwierzytelniony atakujący z dostępem sieciowym do urządzenia może uciec z kontekstu poleceń i wykonać dowolne polecenia z uprawnieniami roota.
- CVE-2026-55614Średnie
W niezałatanych migawkach repozytorium uhttpd funkcja `client_parse_header()` porównuje wartość nagłówka `Transfer-Encoding` z `chunked` z rozróżnianiem wielkości liter, mimo że tokeny kodowania transferu są niewrażliwe na wielkość liter. Mieszana wielkość liter jest akceptowana bez włączenia obsługi chunked, co na połączeniu keep-alive pozwala na przemyt żądań HTTP.
- CVE-2026-55613Średnie
W niezałatanych migawkach repozytorium uhttpd funkcja `uh_ubus_data_send()` może desynchronizować granice żądań HTTP, gdy ciało JSON żądania `POST /ubus` przychodzi w wielu segmentach TCP. Nieprzeczytany sufiks ciała jest następnie przetwarzany jako nowe żądanie na tym samym połączeniu keep-alive.
Oryginalny opis (angielski, źródło NVD)
uhttpd is a small HTTP server. In unpatched repository snapshots, `client_poll_post_data()` in `client.c` consumes an invalid chunk-length line, such as a size exceeding INT_MAX, then clears `r->content_length` and `r->transfer_chunked` without draining the remaining body or setting `request.connection_close`. The completion check treats the chunked POST as finished and the keep-alive parser returns to `CLIENT_STATE_INIT`. Attacker-controlled body bytes aligned as a complete HTTP request are then parsed and processed as another request on the same connection, causing HTTP request smuggling and request-boundary desynchronization. Commits b78f518478794e16ba3568fc1258e40bf3e8eb3b and 34460b8211d676ef1b9f40d6b775c5e112933690 patch the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

