CVE-2026-107761
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Organizacja naraża się na wyciek tokenów dostępu do platform społecznościowych oraz kluczy API organizacji do użytkowników o niższych uprawnieniach lub aplikacji OAuth. Może to prowadzić do nieautoryzowanego dostępu do kont społecznościowych i działań w imieniu organizacji.
Rekomendacja
Zaktualizuj Postiz do wersji, która nie zwraca nadmiarowych danych w odpowiedziach API, jeśli jest dostępna, oraz przejrzyj uprawnienia aplikacji OAuth i role członków organizacji. Unieważnij i wymień ujawnione tokeny i klucze API.
Inne podatności w Postiz
Zobacz wszystkie- CVE-2026-115933Krytyczne
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.
- 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-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)
Several Postiz endpoints return the complete database row of the record they operate on instead of only the fields the client needs. Two of them include secrets the caller is not meant to receive. The public API's channel delete returns the deleted integration row, including the channel's platform access token and refresh token. A third-party OAuth app permitted to delete a channel therefore receives that channel's social platform credentials and can use them against the connected account directly, outside Postiz. `GET /user/organizations` returns each organization row, including its API key, to every member of the organization. The API key is intended for admins only, so a member with a lower role can obtain it and call the public API on behalf of the organization. Both endpoints require a valid session, API key or OAuth token and are scoped to the caller's own organization. There is no anonymous access and no cross-tenant exposure.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

