CVE-2026-79662
WysokieCVSS 8.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
Ech0 do wersji 4.5.6 zawiera podatność w walidacji URI przekierowania OAuth w funkcji parseAndValidateClientRedirect (internal/service/auth/auth.go), która porównuje tylko schemat i host URI redirect_uri dostarczonego przez klienta z listą dozwoloną skonfigurowaną przez administratora, ignorując ścieżkę, zapytanie i fragment. redirect_uri jest osadzane w podpisanym JWT stanu podczas logowania bez walidacji. Atakujący może skonstruować redirect_uri, którego host pasuje do dozwolonego pochodzenia, ale ścieżka jest kontrolowana przez atakującego; po wymianie OAuth ofiara jest przekierowywana na tę ścieżkę z jednorazowym kodem wymiany w ciągu zapytania. Jeśli kod wycieknie (np. przez Referer, analitykę lub otwarte przekierowanie na tym hoście), atakujący może go wymienić na publicznym punkcie końcowym POST /api/auth/exchange na tokeny dostępu i odświeżania ofiary. Poprawiono w wersji 4.7.3.
Ocena ryzyka
Ryzyko kradzieży tokenów dostępu i odświeżania użytkowników, co może prowadzić do nieautoryzowanego dostępu do kont i naruszenia danych.
Rekomendacja
Zaktualizuj Ech0 do wersji 4.7.3 lub nowszej. Dodatkowo upewnij się, że walidacja redirect_uri uwzględnia pełną ścieżkę i inne komponenty, oraz rozważ zabezpieczenie przed wyciekiem kodów wymiany.
Inne podatności w Ech0
Zobacz wszystkie- CVE-2026-79673Średnie
Ech0 przed wersją 4.4.3 chroni endpoint PUT /user zakresem profile:read, który jest tylko do odczytu, ale pozwala na operacje zapisu, w tym zmianę hasła. Atakujący z tokenem dostępu profile:read administratora może zmienić hasło administratora i zalogować się, uzyskując nieograniczony token sesji, który omija wszystkie ograniczenia zakresów.
- CVE-2026-79672Średnie
Ech0 przed wersją 4.4.3 nie egzekwuje autoryzacji opartej na zakresach na dziewięciu endpointach panelu administracyjnego komentarzy, co pozwala tokenom dostępu z minimalnymi zakresami na wykonywanie pełnych operacji moderacji komentarzy. Atakujący z tokenem o ograniczonym zakresie może listować, zatwierdzać, odrzucać, usuwać komentarze oraz modyfikować ustawienia systemu komentarzy, bezpośrednio uzyskując dostęp do niechronionych endpointów panelu.
- CVE-2026-79671Średnie
Ech0 przed wersją 4.4.3 zawiera podatność na podrabianie żądań po stronie serwera (SSRF) w funkcji validateWebhookURL (webhook_setting_service.go), która waliduje tylko dosłowne adresy IP za pomocą net.ParseIP() i nie odrzuca nazw hostów, które rozwiązują się na prywatne lub wewnętrzne adresy IP (np. 169.254.169.254.nip.io). Atakujący z uprawnieniami administratora może utworzyć webhook z taką nazwą hosta, aby ominąć walidację i spowodować, że serwer będzie wysyłać żądania do wewnętrznych usług, punktów końcowych metadanych chmury i zasobów sieci prywatnej. Problem został naprawiony w wersji 4.4.3.
- CVE-2026-79670Średnie
Ech0 przed wersją 4.4.3 zawiera podatność na trwały cross-site scripting (XSS) w endpointcie przesyłania plików, który waliduje Content-Type tylko na podstawie nagłówków dostarczonych przez klienta, bez inspekcji po stronie serwera. Atakujący z uprawnieniami administratora może przesłać pliki SVG lub HTML zawierające JavaScript, który wykonuje się w kontekście aplikacji, gdy uzyska do nich dostęp dowolny użytkownik, umożliwiając przejęcie sesji i eksfiltrację danych.
- CVE-2026-79669Średnie
Ech0 przed wersją 4.4.3 nie posiada kontroli autoryzacji na endpointach dzienników systemowych, co pozwala każdemu uwierzytelnionemu użytkownikowi niebędącemu administratorem na odczyt i strumieniowanie wszystkich logów serwera. Atakujący mogą uzyskać dostęp do historycznych logów i strumieni logów w czasie rzeczywistym przez GET /api/system/logs, GET /api/system/logs/stream oraz WS /ws/system/logs, aby zebrać dane rozpoznawcze, w tym wewnętrzne ścieżki plików, ślady błędów i stan aplikacji.
- CVE-2026-79668Średnie
Ech0 przed wersją 4.7.3 zawiera podatność na ominięcie uwierzytelniania w endpointcie PUT /api/echo/like/:id, która pozwala nieuwierzytelnionym atakującym na zwiększanie wskaźników zaangażowania bez weryfikacji tożsamości lub ograniczeń tempa. Atakujący mogą wysyłać powtarzane żądania, aby sztucznie zawyżyć pole fav_count dla dowolnego znanego identyfikatora echa, co narusza integralność wskaźników zaangażowania i systemów rankingu społecznościowego.
- CVE-2026-79667Wysokie
Ech0 w wersji 4.3.4 i wcześniejszych nie egzekwuje w sposób niezawodny ograniczeń zakresu tokenów dostępu (najmniejszych uprawnień) na kilku uprzywilejowanych trasach administracyjnych. Wiele punktów końcowych (np. /api/inbox, /api/panel/comments, /api/backup/export) pomija sprawdzanie zakresu i autoryzuje tylko na podstawie roli administratora, a moduł eksportu kopii zapasowej całkowicie ignoruje metadane zakresu tokena. Atakujący posiadający celowo ograniczony (niski zakres) token administratora może uzyskać dostęp do szerszej funkcjonalności, w tym do skrzynki odbiorczej i eksportu pełnej kopii bazy danych ZIP. Poprawiono w wersji 4.4.3.
- CVE-2026-79666Średnie
Ech0 przed wersją 4.4.3 nie egzekwuje autoryzacji administratora na endpointach dzienników pulpitu, co pozwala każdemu uwierzytelnionemu użytkownikowi na dostęp do logów systemowych. Atakujący z ważną sesją użytkownika mogą wysyłać zapytania do GET /api/system/logs i subskrybować strumienie logów SSE i WebSocket, aby uzyskać wrażliwe dane operacyjne, w tym ścieżki plików, ślady stosu i wewnętrzne adresy URL.
- CVE-2026-79665Wysokie
Ech0 przed wersją 4.5.1 zawiera podatność na obejście autoryzacji, gdzie tokeny sesji pomijają walidację zakresu w oprogramowaniu pośrednim RequireScopes, umożliwiając zalogowanym nie-administratorom dostęp do punktów końcowych administratora. Atakujący mogą czytać logi systemowe, statystyki odwiedzin, e-maile użytkowników i subskrybować na żywo logi WebSocket, wysyłając uwierzytelnione tokeny sesji do niechronionych punktów końcowych.
- CVE-2026-79664Wysokie
Ech0 przed wersją 4.7.3 nie unieważnia poprawnie tokenów dostępu utworzonych z opcją nigdy nie wygasają, umożliwiając atakującym utrzymanie ciągłego uwierzytelnionego dostępu po kradzieży tokena. Trzy niezależne mechanizmy unieważniania zawodzą: wylogowanie powoduje panikę przy polu ExpiresAt równym nil, RevokeToken pomija, gdy remainTTL wynosi zero, a usunięcie przez administratora nie umieszcza JTI na czarnej liście, pozostawiając skradzione tokeny kryptograficznie ważne aż do rotacji sekretu JWT.
Oryginalny opis (angielski, źródło NVD)
Ech0 through 4.5.6 contains an OAuth redirect URI validation vulnerability in parseAndValidateClientRedirect (internal/service/auth/auth.go) that compares only the scheme and host of the client-supplied redirect_uri against the admin-configured allowlist, ignoring path, query, and fragment components. The redirect_uri is embedded into the signed state JWT at login time without validation. An attacker can craft a redirect_uri whose host matches an allowed origin but whose path is attacker-influenced; after the OAuth exchange the victim is redirected to that path with a one-time exchange code in the query string. If the code leaks (e.g., via Referer, analytics, or an open redirect on that host), the attacker can trade it at the public POST /api/auth/exchange endpoint for the victim's access and refresh tokens. Fixed in 4.7.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

