CVE-2026-94456
KrytyczneCVSS 9.1Streszczenie
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.
Ocena ryzyka
Atakujący może odtworzyć stan generatora losowego i przewidzieć poświadczenia innych użytkowników oraz organizacji, co prowadzi do przejęcia kont i nieautoryzowanego dostępu do zasobów.
Rekomendacja
Zaktualizuj Postiz do wersji, w której generowanie poświadczeń używa kryptograficznie bezpiecznego źródła losowości, oraz unieważnij i wygeneruj ponownie wszystkie istniejące tokeny, sekrety i klucze API.
Inne podatności w Postiz
Zobacz wszystkie- 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.
- CVE-2026-42346Średnie
Postiz to narzędzie do planowania postów w mediach społecznościowych oparte na AI. W wersjach od 2.16.6 do 2.21.6 zabezpieczenia SSRF mają podatność TOCTOU: funkcja isSafePublicHttpsUrl() rozwiązuje DNS w celu walidacji IP, ale późniejsze wywołania fetch() rozwiązują DNS niezależnie. Atakujący kontrolujący serwer DNS może wykorzystać tę lukę przez DNS rebinding, przekierowując żądania do wewnętrznych adresów sieciowych. Problem został naprawiony w wersji 2.21.7.
- CVE-2026-34590Średnie
Postiz przed wersją 2.21.4 zawiera podatność na blind SSRF w endpointcie POST /webhooks/ podczas tworzenia webhooków. Walidacja URL nie blokuje adresów wewnętrznych/prywatnych, co pozwala atakującym na wysyłanie żądań do wewnętrznych usług.
- CVE-2026-34577Wysokie
Postiz to narzędzie do planowania mediów społecznościowych oparte na AI. Przed wersją 2.21.3 endpoint GET /public/stream w PublicController akceptuje dostarczony przez użytkownika parametr url i przekazuje pełną odpowiedź HTTP z powrotem do wywołującego. Jedyną walidacją jest url.endsWith('mp4'), co można łatwo ominąć, dodając .mp4 jako wartość parametru zapytania lub fragment URL. Endpoint nie wymaga uwierzytelniania i nie ma ochrony SSRF, co pozwala nieuwierzytelnionemu atakującemu na odczyt odpowiedzi z wewnętrznych usług, punktów końcowych metadanych chmury i innych zasobów wewnątrz sieci.
- CVE-2026-34576Wysokie
Postiz przed wersją 2.21.3 w endpointcie POST /public/v1/upload-from-url pobiera URL-e podane przez użytkownika bez zabezpieczeń SSRF. Walidacja tylko rozszerzenia pliku jest łatwa do obejścia. Uwierzytelniony użytkownik może odczytywać wewnętrzne zasoby sieciowe i metadane chmury.
Oryginalny opis (angielski, źródło NVD)
Postiz generates security-sensitive credentials using `Math.random()` instead of a cryptographically secure source. The same helper is used for OAuth access tokens, authorization codes, client secrets, organization API keys, and PKCE verifiers, meaning these credentials depend entirely on V8’s deterministic xorshift128+ PRNG state. An unauthenticated OAuth dynamic client registration endpoint exposes freshly generated client credentials, giving attackers enough consecutive PRNG output to reconstruct that internal state. Once recovered, they can deterministically derive past and future values produced by the same generator, potentially compromising credentials belonging to other users and organizations.

