CVE-2026-79664
WysokieCVSS 7.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko trwałego nieautoryzowanego dostępu do systemu po kradzieży tokena, co może prowadzić do naruszenia danych i długotrwałej kompromitacji kont.
Rekomendacja
Zaktualizuj Ech0 do wersji 4.7.3 lub nowszej. Dodatkowo rozważ rotację sekretu JWT i wdrożenie mechanizmów unieważniania tokenów, aby zapobiec utrzymaniu dostępu po kradzieży.
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-79663Średnie
Ech0 przed wersją 4.7.3 zawiera podatność na trwały cross-site scripting (XSS) w publicznym kanale RSS, gdzie nazwy tagów i treść markdown są renderowane bez escapowania HTML. Atakujący z uprawnieniami administratora mogą wstrzyknąć złośliwe nazwy tagów lub surowy HTML w treści echa, który wykonuje się jako JavaScript w czytnikach RSS renderujących podsumowania typu HTML, co dotyka anonimowych subskrybentów i innych użytkowników.
Oryginalny opis (angielski, źródło NVD)
Ech0 before 4.7.3 fails to properly revoke access tokens created with never-expire option, allowing attackers to maintain perpetual authenticated access after token theft. Three independent revocation mechanisms fail: logout panics on nil ExpiresAt field, RevokeToken skips when remainTTL is zero, and admin delete does not blacklist the JTI, leaving stolen tokens cryptographically valid until JWT secret rotation.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

