SOCFortress CoPilot przed wersją 0.1.57 zawiera zakodowany na stałe (hardcoded) sekret podpisywania tokenów JWT, który jest publicznie znany. Nieuwierzytelniony atakujący może sfałszować dowolny token JWT z uprawnieniami administratora i przejąć pełną kontrolę nad aplikacją oraz wszystkimi zarządzanymi przez nią narzędziami bezpieczeństwa.
▸ Pokaż oryginał (EN)
SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.57, SOCFortress CoPilot ships a hardcoded JWT signing secret as a fallback value in backend/app/auth/utils.py:28 and ships it verbatim in .env.example. Any deployment where JWT_SECRET is not explicitly set — including the default Docker Compose setup — signs all authentication tokens with this publicly known value. An unauthenticated attacker can forge arbitrary admin-scoped JWTs and gain full control of the application and every security tool it manages without any credentials. This vulnerability is fixed in 0.1.57.
Aplikacja definiuje w pliku backend/app/auth/utils.py (linia 28) zakodowaną na stałe wartość sekretu JWT jako wartość zapasową (fallback), a tę samą wartość umieszcza w pliku .env.example. W domyślnej konfiguracji Docker Compose zmienna JWT_SECRET nie jest nadpisywana przez operatora, przez co wszystkie tokeny uwierzytelniające są podpisywane publicznie znanych sekretem. Atakujący, znając ten sekret, może samodzielnie wygenerować token JWT z rolą administratora i uwierzytelnić się w aplikacji bez znajomości jakichkolwiek poświadczeń.
Atakujący uzyskuje nieograniczony dostęp administracyjny do aplikacji CoPilot oraz wszystkich zintegrowanych z nią narzędzi bezpieczeństwa, co obejmuje pełną poufność, integralność i dostępność danych oraz zarządzanych systemów.
Należy zaktualizować SOCFortress CoPilot do wersji 0.1.57 lub nowszej. Dodatkowo, niezależnie od aktualizacji, należy natychmiast ustawić unikalną i losową wartość zmiennej środowiskowej JWT_SECRET we wszystkich wdrożeniach oraz unieważnić wszystkie wcześniej wystawione tokeny JWT.
SOCFortress CoPilot we wszystkich wersjach przed 0.1.57, w szczególności wdrożenia korzystające z domyślnej konfiguracji Docker Compose, w których zmienna środowiskowa JWT_SECRET nie została jawnie ustawiona.
Podatność dotyczy wyłącznie wdrożeń, w których operator nie nadpisał domyślnej wartości JWT_SECRET — w tym domyślnej konfiguracji Docker Compose dostarczonej przez producenta. Poprawka dostępna w commicie 4640511a0cf2e7b144a71375b5b349a8318cb186.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H