CVE-2026-61729
KrytyczneCVSS 9.4Streszczenie
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.
Ocena ryzyka
Atakujący może zakłócać działanie endpointów i manipulować mechanizmami obronnymi poprzez przekazywanie dowolnych komend do menedżera Wazuh oraz wywoływać zapytania OpenSearch pod swoją kontrolą. Ryzyko dotyczy wdrożeń z domyślnymi lub nieustawionymi sekretami nagłówków.
Rekomendacja
Zaktualizuj do wersji 0.1.76 i ustaw unikalne wartości GRAYLOG_API_HEADER_VALUE oraz VELOCIRAPTOR_API_HEADER_VALUE. Upewnij się, że menedżer Wazuh jest osiągalny wyłącznie z zaufanych źródeł.
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-61730Krytyczne
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ć.
- 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. Prior to 0.1.76, `verify_graylog_header` in `backend/app/active_response/routes/graylog.py` and `verify_velociraptor_header` in `backend/app/incidents/routes/incident_alert.py` authenticate webhooks against `GRAYLOG_API_HEADER_VALUE` and `VELOCIRAPTOR_API_HEADER_VALUE` with the same publicly hardcoded fallback. The same default is shipped in `.env.example`. Deployments that leave either setting unset or unchanged permit an anonymous caller with the known header value to bypass the JWT authentication required by normal APIs. `POST /api/graylog/invoke` forwards attacker-selected `COMMAND`, `ACTION`, `VALUE` and `AGENT_ID` to the configured Wazuh manager without the command-enum validation of the authenticated invocation route, allowing active-response scripts to disrupt endpoints and manipulate defensive controls. `POST /api/incidents/alerts/create/threshold` and `POST /api/incidents/alerts/create/velo-sigma` accept forged alerts for arbitrary `customer_code` values and drive attacker-controlled OpenSearch queries. Active-response delivery requires a configured reachable Wazuh manager. Deployments with independently changed header secrets are not subject to this default-secret bypass. This issue is fixed in version 0.1.76.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

