CVE-2023-29406
ŚrednieStreszczenie
Klient HTTP/1 w języku Go nie w pełni weryfikuje zawartość nagłówka Host. Złośliwie spreparowany nagłówek Host może umożliwić wstrzyknięcie dodatkowych nagłówków lub całych żądań. Poprawka uniemożliwia wysyłanie żądań z nieprawidłową wartością Request.Host lub Request.URL.Host.
Ocena ryzyka
Ryzyko polega na możliwości przeprowadzenia ataków typu request smuggling lub wstrzykiwania nagłówków, co może prowadzić do naruszenia integralności komunikacji, przechwycenia sesji lub ominięcia zabezpieczeń.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę Go do wersji zawierającej poprawkę (np. 1.20.6 lub 1.19.11) oraz ponownie skompilować wszystkie aplikacje korzystające z klienta HTTP/1.
Inne podatności w Go
Zobacz wszystkie- CVE-2023-45290Średnie
Podczas parsowania formularza multipart w Go, limity całkowitego rozmiaru formularza nie były stosowane do pamięci zużywanej podczas odczytu pojedynczej linii. Umożliwia to atakującemu wysłanie złośliwego żądania, które może spowodować nadmierne zużycie pamięci.
- CVE-2025-47906Średnie
Podatność w funkcji LookPath powoduje, że gdy zmienna środowiskowa PATH zawiera ścieżki do plików wykonywalnych (a nie tylko katalogów), przekazanie określonych ciągów znaków („”, „.”, „..”) może skutkować nieoczekiwanym zwróceniem plików binarnych wymienionych w PATH.
- CVE-2025-0913Średnie
Podatność w implementacji funkcji os.OpenFile w języku Go powoduje różne zachowanie na systemach Unix i Windows, gdy ścieżka docelowa jest wiszącym dowiązaniem symbolicznym. Na Unixie flaga O_EXCL zapobiega podążaniu za dowiązaniami, podczas gdy na Windowsie funkcja może podążać za dowiązaniem do nieistniejącej lokalizacji.
- CVE-2023-39325Wysokie
Podatność w implementacji HTTP/2 w Go pozwala złośliwemu klientowi na szybkie tworzenie i resetowanie żądań, co prowadzi do nadmiernego zużycia zasobów serwera. Mimo ograniczenia liczby równoczesnych strumieni przez MaxConcurrentStreams, resetowanie żądań umożliwia atakującemu ciągłe wysyłanie nowych żądań.
- CVE-2023-45283Wysokie
Pakiet filepath w Go nie rozpoznaje ścieżek z prefiksem \??\ jako specjalnych. W systemie Windows ścieżka zaczynająca się od \??\ jest równoważna ścieżce zaczynającej się od \\?\ i może być używana do dostępu do dowolnych lokalizacji w systemie.
- CVE-2024-34155Średnie
Podatność w standardowym parserze języka Go powoduje panikę przy przetwarzaniu kodu źródłowego z głęboko zagnieżdżonymi literałami. Problem wynika z wyczerpania stosu podczas rekurencyjnego parsowania.
- CVE-2024-45336Średnie
Klient HTTP w Go usuwa wrażliwe nagłówki (np. Authorization) po przekierowaniu między domenami, ale może je ponownie wysłać przy kolejnym przekierowaniu w obrębie tej samej domeny, co stanowi potencjalne ryzyko wycieku danych.
- CVE-2025-22873Średnie
Podatność w pakiecie os standardowej biblioteki Go umożliwia nieprawidłowy dostęp do katalogu nadrzędnego os.Root poprzez otwarcie nazwy pliku kończącej się na "../". Na przykład wywołanie Root.Open("../") otwiera katalog nadrzędny, co stanowi naruszenie ograniczeń dostępu.
- CVE-2026-56865Wysokie
Złośliwy GOPROXY mógł wcześniej sfałszować do dwóch kafelków sumdb, co pozwalało na obejście kontroli GOSUMDB dla żądanego modułu i utrwalenie treści modułu kontrolowanej przez atakującego w lokalnym cache modułów Go. Atak umożliwia złośliwemu GOPROXY serwowanie złośliwej treści modułu, która nie może być wykryta przez ocenę dziennika przejrzystości. Wszystkie kafelki są teraz poprawnie weryfikowane względem ich rodziców. Aby sprawdzić, czy zostałeś dotknięty: rm -r go.sum go.work.sum vendor/ && go mod tidy
- CVE-2026-56864Wysokie
Złośliwy GOSUMDB mógł serwować dowolną treść modułu nie zawartą w dzienniku przejrzystości. Ten atak pozwala skoordynowanemu GOPROXY i GOSUMDB na serwowanie klientowi złośliwej treści modułu, która nie może być wykryta przez ocenę dziennika przejrzystości. Aby sprawdzić, czy zostałeś dotknięty: rm -r go.sum go.work.sum vendor/ && go mod tidy
Oryginalny opis (angielski, źródło NVD)
The HTTP/1 client does not fully validate the contents of the Host header. A maliciously crafted Host header can inject additional headers or entire requests. With fix, the HTTP/1 client now refuses to send requests containing an invalid Request.Host or Request.URL.Host value.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

