CVE-2026-39383
WysokieCVSS 7.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Gotenberg w wersji 8.29.1 zawiera podatność na ślepe SSRF. Nieuwierzytelniony atakujący z dostępem sieciowym może wymusić na serwerze wykonanie wychodzących żądań HTTP POST do dowolnych wewnętrznych lub zewnętrznych miejsc docelowych, podając spreparowany URL w nagłówku Gotenberg-Webhook-Url.
Ocena ryzyka
Atakujący może badać wewnętrzną infrastrukturę sieciową, wymuszać żądania POST na wewnętrznych usługach i potwierdzać dostępność endpointów metadanych chmury, co może prowadzić do eskalacji ataku.
Rekomendacja
Należy zaktualizować Gotenberg do wersji 8.31.0 lub skonfigurować zmienne środowiskowe GOTENBERG_API_WEBHOOK_ALLOW_LIST i GOTENBERG_API_WEBHOOK_DENY_LIST, aby ograniczyć dozwolone adresy URL webhooków.
Inne podatności w Gotenberg
Zobacz wszystkie- CVE-2026-45742Wysokie
Gotenberg od wersji 8.10.0 do 8.33.0 ma podatność na wyścig w funkcji newContext w pkg/modules/api/context.go, gdzie wiele gorutyn współbieżnie zapisuje do współdzielonych map i slice'ów. Spreparowane żądanie multipart z wieloma wpisami downloadFrom może wywołać błąd krytyczny 'concurrent map writes' i zatrzymać proces. Domyślna konfiguracja umożliwia atak bez uwierzytelnienia, prowadząc do odmowy usługi. Problem naprawiono w wersji 8.33.0.
- CVE-2026-42595Wysokie
Gotenberg to API do plików PDF, które przed wersją 8.32.0 nie miało domyślnej ochrony przed atakami SSRF opartymi na HTTP/HTTPS. Atakujący mógł skierować Chromium na dowolny wewnętrzny adres IP i otrzymać odpowiedź w formacie PDF.
- CVE-2026-42590Wysokie
Gotenberg to API do plików PDF, które przed wersją 8.30.0 miało lukę umożliwiającą obejście blokady zapisu metadanych ExifTool. Dzięki składni prefiksu grupy ExifTool, atakujący mógł dowolnie zmieniać nazwy plików, przenosić je oraz tworzyć twarde i miękkie linki na serwerze.
- CVE-2026-40893Wysokie
Gotenberg to API bezstanowe dla plików PDF, które przed wersją 8.31.0 nie sprawdzało poprawnie tagów, co umożliwiało atakującym zdalnym przesuwanie, zmienianie nazw i uprawnień do dowolnych plików.
- CVE-2026-45741Wysokie
Gotenberg w wersji 8.32.0 i wcześniejszych ma podatność w funkcji IsPublicIP, która nie odrzuca prefiksów IPv6 takich jak 2002::/16, 64:ff9b::/96, fec0::/10 i innych, które mogą zawierać lub kierować do niepublicznych adresów IPv4. Spreparowany rekord DNS AAAA może spowodować, że klient HTTP będzie traktował adres opakowujący wewnętrzny cel (np. 169.254.169.254) jako publiczny, co umożliwia dostęp do metadanych chmury. Problem naprawiono w wersji 8.33.0.
- CVE-2026-44829Wysokie
Gotenberg w wersji 8.32.0 i wcześniejszych ma podatność w obsłudze nazw plików, gdzie filepath.Base na Linuxie nie traktuje backslashy jako separatorów ścieżek, więc nazwa pliku zawierająca składniki ścieżek w stylu Windows (np. ........\Windows\System32\evil.pdf) przechodzi sanityzację. Zdalny atakujący może dostarczyć taką nazwę, a po rozpakowaniu archiwum na systemie Windows plik może zostać zapisany poza zamierzonym katalogiem. Problem naprawiono w wersji 8.33.0.
- CVE-2026-55229Wysokie
Podatność w Gotenberg przed wersją 8.34.0 umożliwia wstrzyknięcie żądań po stronie serwera (SSRF) oraz ograniczony odczyt plików lokalnych poprzez specjalnie spreparowany dokument przekazany do endpointu /forms/libreoffice/convert. LibreOffice automatycznie pobiera zewnętrzne zasoby HTTP(S) oraz lokalne pliki podczas konwersji dokumentu.
- CVE-2026-40280Wysokie
Gotenberg w wersjach 8.30.1 i wcześniejszych używa wyrażenia regularnego ^https?:// do sprawdzania URL-i w listach blokad prywatnych adresów IP. Ponieważ Go normalizuje schemat URL do małych liter przed nawiązaniem połączenia, atakujący może ominąć blokadę, używając wielkich liter w schemacie (np. HTTP://). Umożliwia to wysyłanie nieuwierzytelnionych żądań do wewnętrznych usług sieciowych, w tym metadanych chmurowych.
- CVE-2024-21527Wysokie
Podatność SSRF w Gotenberg przed wersją 8.1.0 umożliwia wczytanie plików lokalnych przez endpoint /convert/html. Atakujący może wykorzystać iframe wskazujący na localhost, np. <iframe src="\\localhost/etc/passwd">, co prowadzi do odczytu wrażliwych plików systemowych.
Oryginalny opis (angielski, źródło NVD)
Gotenberg is an API-based document conversion tool. In version 8.29.1, an unauthenticated attacker with network access can force the server to make outbound HTTP POST requests to arbitrary internal or external destinations by supplying a crafted URL in the Gotenberg-Webhook-Url request header. The FilterDeadline function in filter.go is intended to gate outbound URLs, but when both the allow-list and deny-list are empty (the default configuration), it returns nil unconditionally and permits any URL. This is a blind SSRF: Gotenberg POSTs the converted document to the webhook URL and only checks whether the response status code is an error, but never returns the target's response body to the attacker. An attacker can use this to probe internal network infrastructure by observing whether the error callback is invoked, force POST requests against internal services that perform side effects, and confirm reachability of cloud metadata endpoints. The retryable HTTP client issues up to 4 automatic retries per request, amplifying each probe. This issue has been fixed in version 8.31.0. As a workaround, configure the GOTENBERG_API_WEBHOOK_ALLOW_LIST environment variable to restrict webhook URLs to known receivers, or set GOTENBERG_API_WEBHOOK_DENY_LIST to block RFC-1918 and link-local address ranges.

