CVE-2026-45709
ŚrednieCVSS 5.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 13 - wyżej niż 13% wszystkich znanych CVE
Streszczenie
Mailpit zawiera podatność SSRF w komponencie sprawdzania HTML, która pozwala na dostęp do wewnętrznych zasobów sieciowych. Mimo wcześniejszych poprawek, mechanizm pobierania CSS nie filtruje adresów IP, umożliwiając atakującemu przekierowanie żądania do prywatnych adresów IP. Podatność jest dostępna bez uwierzytelnienia w domyślnej konfiguracji.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do skanowania wewnętrznej sieci, uzyskania dostępu do usług działających na localhost lub w sieci prywatnej, co może prowadzić do eskalacji uprawnień lub wycieku danych.
Rekomendacja
Należy natychmiast zaktualizować Mailpit do wersji 1.30.0 lub nowszej. W międzyczasie zaleca się włączenie opcji --block-remote-css-and-fonts oraz ograniczenie dostępu do interfejsu API tylko dla zaufanych sieci.
Inne podatności w Mailpit
Zobacz wszystkie- CVE-2026-67448Średnie
Mailpit to narzędzie do testowania poczty i API dla programistów. Od wersji 1.29.0 do 1.30.6, oprogramowanie pośredniczące origin w server/server.go sprawdza surowy RequestURI pod kątem prefiksu /api/, podczas gdy Go ServeMux routuje używając ścieżki URL zdekodowanej procentowo, a server/websockets/client.go konfiguruje websocket.Upgrader.CheckOrigin na zwracanie true. Złośliwa strona może zażądać /%61pi/events, pominąć corsOriginAccessControl(), dotrzeć do handlera WebSocket /api/events i otrzymać identyfikatory wiadomości na żywo, wartości Message-Id, pola nadawcy i odbiorcy, tematy, tagi i fragmenty treści z nieuwierzytelnionej domyślnej instancji Mailpit po odwiedzeniu strony przez użytkownika. Jest to regresja wcześniejszej ochrony pochodzenia WebSocket i nie dotyczy wdrożeń chronionych przez --ui-auth-file. Problem został naprawiony w wersji 1.30.6.
- CVE-2026-67447Średnie
Mailpit to narzędzie do testowania poczty i API dla programistów. Od wersji 1.30.0 do 1.30.5, funkcja readData() w internal/smtpd/smtpd.go wywołuje bufio.Reader.ReadBytes przed zastosowaniem kontroli rozmiaru len(data)+len(line) dla ukończonej linii SMTP DATA względem Server.MaxSize. Nieuwierzytelniony klient SMTP może wysłać pojedynczą linię większą niż skonfigurowany MaxMessageSize, co powoduje alokację całej linii zanim Mailpit zwróci odrzucenie 552 5.3.4. Ta luka po poprawce pozostaje po ograniczeniu normalnego wieloliniowego gromadzenia danych, a równoczesne zbyt duże linie mogą stworzyć znaczną presję na pamięć przekraczającą skonfigurowany limit rozmiaru wiadomości. Problem został naprawiony w wersji 1.30.5.
- CVE-2026-67446Średnie
W Mailpit przed wersją 1.30.4, endpoint GET /api/v1/message/{id}/part/{partID}/thumb dekoduje załączniki obrazów do pełnej rastry przed sprawdzeniem wymiarów, liczby pikseli lub użycia pamięci. Kompaktowy obraz z bardzo dużymi wymiarami może zużywać nieproporcjonalnie dużo pamięci i CPU, co może prowadzić do degradacji dostępności usługi.
- CVE-2026-67445Średnie
W Mailpit przed wersją 1.30.4, czytnik poleceń SMTP alokuje pełną linię poleceń przed sprawdzeniem limitu 512 oktetów. Nieuwierzytelniony zdalny klient SMTP może wysłać bardzo długą pojedynczą linię, co może prowadzić do nadmiernego zużycia pamięci i zmniejszenia dostępności usługi.
- CVE-2026-48824Średnie
Mailpit przed wersją 1.30.1 zawiera podatność DoS w czterech endpointach API JSON, gdzie nie ma ograniczenia rozmiaru ciała żądania, co pozwala nieuwierzytelnionemu atakującemu na zdalne spowodowanie znacznego wzrostu zużycia pamięci.
- CVE-2026-45713Wysokie
Mailpit przed wersją 1.30.0 nie ogranicza rozmiaru danych przesyłanych przez SMTP ani HTTP, co pozwala atakującemu na wysłanie bardzo dużych wiadomości. Powoduje to gwałtowny wzrost zużycia pamięci RAM (nawet 7-10 razy większy niż rozmiar danych), co może doprowadzić do zabicia procesu przez OOM.
- CVE-2026-45712Średnie
Mailpit przed wersją 1.30.0 zawiera podatność w proxy zrzutów ekranu/drukowania (/proxy?data=…), gdzie odczyt mapy assets bez blokady mutexu podczas współbieżnego zapisu prowadzi do błędu krytycznego Go (concurrent map read and map write), powodującego awarię całego procesu Mailpit.
- CVE-2026-45711Średnie
Podatność na zapis poza katalogiem docelowym w narzędziu Mailpit przed wersją 1.30.0. Pole ID wiadomości jest pobierane dosłownie z odpowiedzi JSON zdalnego serwera i łączone ze ścieżką wyjściową za pomocą path.Join, które normalizuje segmenty '..'. Złośliwy serwer HTTP podszywający się pod Mailpit może zapisać dane w dowolnej ścieżce, do której użytkownik ma dostęp zapisu.
- CVE-2026-55187Średnie
Mailpit przed wersją 1.30.2 zawiera niekompletną poprawkę podatności CVE-2026-27808, która nie blokuje wszystkich mechanizmów przejścia IPv6 (NAT64, 6to4, ISATAP itp.). Atakujący może wykorzystać API Link Check do skanowania wewnętrznych usług, w tym punktów końcowych metadanych chmury.
Oryginalny opis (angielski, źródło NVD)
Mailpit is an email testing tool and API for developers. The fix for GHSA-6jxm-fv7w-rw5j (CVE-2026-23845, "Server-Side Request Forgery (SSRF) via HTML Check API"), shipped in mailpit `v1.28.3`, hardened `internal/htmlcheck/css.go::downloadCSSToBytes` with a 5MB size cap, a `text/css` content-type check, login-info stripping in `isValidURL`, and an opt-in `--block-remote-css-and-fonts` config flag — but did not add the IP-filtering dialer that the same codebase already uses on the two sister SSRF endpoints (the proxy handler and link-check). Prior to version 1.30.0, `internal/htmlcheck/css.go::newSafeHTTPClient` is mis-named — it builds an `http.Client` whose `Transport.DialContext` calls `net.Dialer.DialContext` directly with no IP allowlisting. As a result, the SSRF originally reported by Bao Anh Phan still permits the server to dial loopback, private, link-local, and any other reserved/multicast range, provided the target replies with `HTTP/200` and a content-type beginning with `text/css`. With redirect-following (`CheckRedirect` allows redirects to any `isValidURL` URL with no IP filter), an attacker-controlled public site can redirect mailpit's request into the private network without ever appearing in the email's HTML. In the default mailpit deploy (no UI auth, no SMTP auth, port 1025/8025 exposed), this is an unauthenticated, network-reachable SSRF triggered by sending an HTML email and then issuing one HTTP `GET` to `/api/v1/message/{id}/html-check`. Version 1.30.0 contains an updated fix.

