CVE-2026-55613
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Możliwy jest przemyt żądań HTTP, co może prowadzić do obchodzenia kontroli bezpieczeństwa lub wykonywania nieoczekiwanych żądań. Ryzyko dotyczy wdrożeń z włączonym ubus, w tym domyślnej konfiguracji OpenWrt.
Rekomendacja
Zastosuj poprawki z commitów 7b1bec45826bd78c8afc993435bdc0f1df2fe399 i b2285de129b9adc8b12f84f9a27c16c21f2b57a5 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-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-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, `uh_ubus_data_send()` in `ubus.c` can desynchronize HTTP request boundaries when a `POST /ubus` JSON body arrives in multiple TCP segments. An initial segment completing a JSON object sets `du->jsobj`; a later segment takes the existing-object parse-error path and returns zero bytes consumed. The caller neither drains the remaining declared `Content-Length` nor sets `connection_close`. An HTTP request embedded in the unread body suffix is consequently processed as a new request on the same keep-alive connection. The reported reproducer returned a JSON-RPC parse error followed by a second HTTP response. This application-layer body-handler flaw is distinct from Transfer-Encoding header case handling and chunk-length state reset, and affects deployments enabling ubus, including the default OpenWrt configuration and potential proxy/CDN deployments. Repository patches 7b1bec45826bd78c8afc993435bdc0f1df2fe399 and b2285de129b9adc8b12f84f9a27c16c21f2b57a5 address this issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

