CVE-2026-115933
KrytyczneCVSS 9.9Streszczenie
Postiz podpisuje tokeny sesji, zaproszeń i resetowania hasła jednym wspólnym sekretem, bez oznaczenia przeznaczenia tokenu. Trasa odświeżająca dane kanału rozszerzenia przeglądarki podpisywała dane pochodzące z samego żądania i zapisywała wynik w miejscu czytelnym dla użytkownika, co pozwalało uzyskać poprawnie podpisany token z dowolnymi roszczeniami akceptowany jako sesja, zaproszenie z wybraną rolą, reset hasła lub token provisioningu enterprise.
Ocena ryzyka
Uwierzytelniony użytkownik może podszyć się pod inne role lub przejąć kontrolę nad kontem, co prowadzi do eskalacji uprawnień i nieautoryzowanego dostępu do organizacji. Stanowi to poważne zagrożenie dla poufności i integralności danych.
Rekomendacja
Zaktualizuj Postiz do wersji zawierającej poprawkę oraz unieważnij wszystkie istniejące tokeny sesji, zaproszeń i resetowania hasła. Wdróż osobne sekrety i znaczniki typu tokenu dla każdego zastosowania.
Inne podatności w Postiz
Zobacz wszystkie- CVE-2026-115932Krytyczne
W Postiz ścieżka mediów, która nie jest adresem web, jest traktowana jako plik na dysku serwera bez sprawdzenia, czy znajduje się w katalogu uploadu. Zarejestrowany użytkownik może zapisać spreparowaną ścieżkę przy poście i doprowadzić do odczytu dowolnego pliku oraz wysłania go jako załącznika na kontrolowany przez siebie serwer Discord. Te same nieograniczone odczyty są dostępne przez dwie dodatkowe ścieżki, w tym sprawdzanie istnienia pliku i wyczerpanie pamięci backendu; samodzielna rejestracja jest domyślnie otwarta.
- CVE-2026-115931Krytyczne
Postiz pozwala zalogowanemu użytkownikowi na żądanie wykonania funkcji na podłączonym kanale, ale backend nie ograniczał, jakie funkcje mogą być wywołane. Użytkownik mógł wywołać wewnętrzne funkcje pomocnicze, w tym jedną czytającą pliki z dysku serwera (np. plik środowiskowy z sekretem do podpisywania sesji, adres bazy danych i poświadczenia usług) oraz inną powodującą zakończenie procesu backendu. Samorejestracja jest domyślnie otwarta, więc nie jest potrzebne istniejące konto ani działanie innego użytkownika.
- CVE-2026-94456Krytyczne
Postiz generuje wrażliwe poświadczenia bezpieczeństwa przy użyciu Math.random() zamiast kryptograficznie bezpiecznego źródła. Ten sam mechanizm jest używany dla tokenów dostępu OAuth, kodów autoryzacyjnych, sekretów klienta, kluczy API organizacji oraz weryfikatorów PKCE, przez co zależą one od deterministycznego stanu PRNG xorshift128+ w V8. Nieuwierzytelniony endpoint dynamicznej rejestracji klienta OAuth ujawnia świeżo wygenerowane poświadczenia, co pozwala atakującemu odtworzyć wewnętrzny stan generatora i wyliczyć przeszłe oraz przyszłe wartości.
- CVE-2026-19264Krytyczne
Postiz, narzędzie do planowania postów w mediach społecznościowych, ma podatność na przechodzenie poza katalog (path traversal) w trasie serwującej lokalnie przechowywane media. Trasa nie wymaga uwierzytelnienia i nie normalizuje ścieżki, co pozwala nieuwierzytelnionemu atakującemu na odczyt dowolnych plików, w tym zmiennych środowiskowych z sekretami JWT i hasłami do baz danych.
- CVE-2026-48781Krytyczne
Postiz to narzędzie do planowania postów w mediach społecznościowych. W wersjach przed 2.21.8, atakujący mógł wykorzystać lukę w integracji Skool, aby sfałszować sesję SUPERADMIN, co pozwalało na podszywanie się pod dowolne organizacje.
- CVE-2026-42298Krytyczne
Postiz, narzędzie do planowania postów w mediach społecznościowych, przed commitem da44801 zawiera podatność typu "Pwn Request" w workflow Docker Build and Publish PR. Każdy nieuwierzytelniony użytkownik może wykonać dowolny kod podczas procesu budowania Dockera i wycieknąć wysoko uprzywilejowany token GITHUB_TOKEN (uprawnienia write-all) poprzez otwarcie Pull Requesta z fork'a ze zmodyfikowanym plikiem Dockerfile.dev.
- CVE-2026-107761Średnie
Kilka endpointów Postiz zwraca pełny wiersz bazy danych rekordu, na którym operuje, zamiast tylko pól potrzebnych klientowi. Dwa z nich zawierają sekrety, których wywołujący nie powinien otrzymywać: publiczne API usuwania kanału zwraca token dostępu i token odświeżania platformy, a GET /user/organizations zwraca klucz API organizacji każdemu członkowi. Oba endpointy wymagają ważnej sesji, klucza API lub tokenu OAuth i są ograniczone do organizacji wywołującego.
- CVE-2026-48799Wysokie
Podatność w narzędziu Postiz do zarządzania mediami społecznościowymi umożliwia niskouprzywilejowanemu kontu przyznanie dowolnej organizacji dożywotniej subskrypcji PRO bez płatności. Problem wynika z braku weryfikacji autentyczności callbacku IPN od Nowpayments oraz odczytywania identyfikatora subskrypcji z niezaufanego żądania.
- CVE-2026-48783Średnie
Postiz to narzędzie do planowania postów w mediach społecznościowych oparte na AI. W wersjach przed 2.21.8 istniał nieautoryzowany punkt końcowy, który akceptował podpisany token i stosował skutki egzekucji subskrypcji bez weryfikacji celu tokena.
- CVE-2026-42556Wysokie
Postiz, narzędzie do planowania postów w mediach społecznościowych oparte na AI, w wersjach od 2.21.6 do 2.21.7 pozwala każdemu uwierzytelnionemu użytkownikowi, który może tworzyć posty, na przechowywanie dowolnego kodu HTML w treści posta poprzez manipulację własnym żądaniem zapisu. Publiczny link podglądu /p/<postId>?share=true wysłany innemu użytkownikowi renderuje ten HTML z dangerouslySetInnerHTML na głównej domenie aplikacji.
Oryginalny opis (angielski, źródło NVD)
Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token. A second, narrower route that creates team invitations signs extra fields from the request body in the same way.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

