Katalog CVE

CVE-2026-56866

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Gdy http.Transport wysyła żądanie HTTP/1 CONNECT z niepustym Request.Body, zapisuje ciało bezpośrednio do połączenia bez ramkowania po nagłówkach żądania. Jeśli serwer odrzuci żądanie CONNECT odpowiedzią keep-alive inną niż 2xx, Transport zwraca połączenie do puli bezczynnych. Ponieważ żądania CONNECT nie mają ciała żądania, serwer może zinterpretować końcowe bajty ciała jako kolejne potokowe żądanie HTTP/1.1 na tym połączeniu, pozostawiając połączenie w puli zdesynchronizowane i powodując, że następny wywołujący, który je ponownie użyje, odczyta odpowiedź na wstrzyknięte żądanie.

Ocena ryzyka

W reverse proxy (w tym httputil.ReverseProxy) przekazujących żądania CONNECT przez współdzielony Transport może to prowadzić do zatrucia odpowiedzi między użytkownikami (cross-user response poisoning).

Rekomendacja

Zaktualizuj Go do wersji z poprawką, która prawidłowo obsługuje ciało żądania CONNECT.

Inne podatności w Go net/http

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS