CVE-2026-61730
KrytyczneCVSS 9.3Streszczenie
W SOCFortress CoPilot nieuwierzytelniony mount StaticFiles /scoutsuite-report udostępnia katalog scoutsuite-report, ujawniając raporty HTML oraz pliki wyników zawierające informacje o IAM, zasobach i błędach konfiguracji AWS, Azure i GCP. Podczas skanowania GCP klucz konta usługi jest zapisywany w tym samym katalogu i usuwany dopiero po zakończeniu skanowania, więc anonimowy klient może go pobrać.
Ocena ryzyka
Anonimowy atakujący może odczytać prywatny klucz konta usługi i wykorzystać jego uprawnienia w chmurze oraz uzyskać dostęp do przechowywanych raportów bezpieczeństwa. Prowadzi to do naruszenia poufności danych i nieautoryzowanych operacji w chmurze.
Rekomendacja
Zaktualizuj do wersji 0.1.77, która wprowadza izolację poświadczeń, i ogranicz dostęp sieciowy do ścieżki /scoutsuite-report. Rozważ rotację kluczy kont usług używanych podczas skanów.
Inne podatności w SOCFortress CoPilot
Zobacz wszystkie- CVE-2026-61739Wysokie
W SOCFortress CoPilot przed wersją 0.1.77 endpointy zarządzania wykluczeniami Velociraptor Sigma nie weryfikują ról ani tenanta, a endpoint tworzenia wykluczenia nie waliduje poprawnie poświadczeń — dowolny nieprawidłowy, wygasły lub sfałszowany token Bearer pozwala utworzyć regułę wyciszania. Ponadto reguły z pustym customer_code działają globalnie, a niskouprzywilejowani użytkownicy mogą przeglądać, modyfikować, wyłączać i usuwać wykluczenia.
- CVE-2026-61708Wysokie
W SOCFortress CoPilot przed wersją 0.1.76 endpoint POST /api/agent_data_store/upload pozwala użytkownikom z rolą customer_user wybrać nazwę bucketu i obiektu bez allowlisty, prefiksu tenanta ani sprawdzenia własności. Możliwe jest nadpisywanie obiektów innych tenantów, w tym konfiguracji sysmon, szablonów raportów i dowodów z spraw. Podatność naprawiono w wersji 0.1.76.
- CVE-2026-61738Krytyczne
W SOCFortress CoPilot przed wersją 0.1.77 endpoint POST /api/scoutsuite/generate-gcp-report przekazuje surową nazwę pliku z nagłówka multipart do funkcji zapisu bez sanityzacji ani sprawdzenia ścieżki docelowej. Nazwa pliku z sekwencją przejścia katalogów pozwala zapisać przesłany JSON poza zamierzonym katalogiem raportów, w tym w katalogu źródłowym aplikacji.
- CVE-2026-61729Krytyczne
W SOCFortress CoPilot przed wersją 0.1.76 funkcje verify_graylog_header i verify_velociraptor_header uwierzytelniają webhooki przy użyciu tego samego publicznie zaszytego domyślnego nagłówka, obecnego także w .env.example. Wdrożenia z niezmienionym sekretem pozwalają anonimowemu wywołującemu ominąć uwierzytelnianie JWT i wywołać akcje active-response oraz tworzyć sfałszowane alerty.
- CVE-2026-61728Krytyczne
W SOCFortress CoPilot użytkownicy portalu, w tym konta typu customer_user, mogą przesyłać znaczniki HTML przez endpoint komentarzy do alertów, które są renderowane bez sanityzacji przy użyciu v-html. Umożliwia to przechowywany XSS, a ponieważ tokeny dostępu i odświeżania są przechowywane w pamięci dostępnej dla JavaScript, wstrzyknięty skrypt może je wykraść i przejąć konto przeglądającego. Podatność dotyczy także innych pól SOC (sprawy, zasoby, health-check) i została naprawiona w wersjach 0.1.70 (health-check) oraz 0.1.76 (komentarze i pozostałe pola).
- CVE-2026-61707Krytyczne
W SOCFortress CoPilot przed wersją 0.1.76 szablony raportów przesyłane przez użytkownika o najniższych uprawnieniach (customer_user) są później wykonywane przez niesandboxowane silniki Jinja2 podczas generowania raportu przez administratora lub analityka. Brak walidacji treści szablonu oraz brak izolacji między klientami pozwala atakującemu na wstrzyknięcie złośliwych wyrażeń Jinja, które są wykonywane jako kod Python na backendzie.
- CVE-2026-42869Krytyczne
W wersjach przed 0.1.57, SOCFortress CoPilot zawierał twardo zakodowany sekret do podpisywania JWT, co umożliwiało atakującym fałszowanie tokenów administracyjnych. W przypadku, gdy JWT_SECRET nie jest ustawiony, wszystkie tokeny uwierzytelniające są podpisywane tym publicznie znanym kluczem.
Oryginalny opis (angielski, źródło NVD)
SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. In affected deployments, the unauthenticated `/scoutsuite-report` `StaticFiles` mount in `backend/copilot.py` exposes the `scoutsuite-report` directory even though normal /api routes require JWT authentication. Generated HTML reports and `scoutsuite-results/scoutsuite_results_<name>.js` files disclose AWS, Azure and GCP IAM principals, resource inventories, misconfigurations and findings. Report names derive from caller-selected names with predictable defaults. During an admin- or analyst-initiated GCP scan, `backend/app/integrations/scoutsuite/routes/scoutsuite.py` saves the uploaded Google service-account JSON key into that same web-served directory. In `backend/app/integrations/scoutsuite/services/scoutsuite.py`, `generate_gcp_report_background` removes the key only after the scan finishes. Any anonymous client that can reach the host and request the file path can therefore retrieve the private key during the scan and use the service account's cloud permissions, as well as read retained cloud-security reports. Credential isolation is released in version 0.1.77; a release fully remediating the report-disclosure component has not been established.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

