CVE-2026-55614
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Możliwy jest przemyt żądań HTTP i desynchronizacja granic żądań, co może prowadzić do obchodzenia kontroli bezpieczeństwa lub zatruwania odpowiedzi. Ryzyko dotyczy serwerów uhttpd z połączeniami keep-alive.
Rekomendacja
Zastosuj poprawki z commitów ae015e099986ceace44975cb69629841a2d58d37 i 6641b050e5f7c7fd9ae92e8e119d6d6dfc6e9837 lub zaktualizuj do wersji zawierającej te zmiany.
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-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.
- CVE-2026-55612Niskie
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ń.
Oryginalny opis (angielski, źródło NVD)
uhttpd is a small HTTP server. In unpatched repository snapshots, `client_parse_header()` in `client.c` lowercases header names but compares the `Transfer-Encoding` value to `chunked` using case-sensitive `strcmp`. A mixed-case transfer-coding token is accepted without enabling `r->transfer_chunked`, despite transfer-coding tokens being case-insensitive. On a keep-alive connection, the `chunked` POST body is left unread and request-shaped body bytes are parsed as another HTTP request, permitting HTTP request smuggling and boundary desynchronization. Commits ae015e099986ceace44975cb69629841a2d58d37 and 6641b050e5f7c7fd9ae92e8e119d6d6dfc6e9837 patch the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

