CVE-2026-56231
WysokieCVSS 7.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 7 - wyżej niż 7% wszystkich znanych CVE
Streszczenie
Capgo w wersji przed 12.128.2 zawiera podatność BOLA (broken object level authorization) w punktach końcowych POST /build/start/:jobId oraz POST /build/cancel/:jobId. Atakujący może wykorzystać kontrolowane przez siebie app_id do autoryzacji żądań, co pozwala na uruchamianie lub anulowanie zadań budowy innych najemców.
Ocena ryzyka
Organizacja może być narażona na sabotaż budowy między najemcami, nieautoryzowane działania obliczeniowe oraz potencjalne problemy z rozliczeniami. Umożliwia to atakującym wpływanie na zasoby innych użytkowników.
Rekomendacja
Zaleca się aktualizację do wersji 12.128.2 lub nowszej, aby naprawić tę podatność. Dodatkowo, warto wdrożyć dodatkowe kontrole autoryzacji, aby upewnić się, że jobId w URL należy do odpowiedniego app_id.
Inne podatności w Capgo
Zobacz wszystkie- CVE-2026-88863Wysokie
W pakiecie npm `capgo` (do wersji 12.207.1) funkcja validateInvite() nie porównuje rangi roli zapraszającego z rangą roli, którą chce nadać. Użytkownik z uprawnieniem org.invite_user może zaprosić zewnętrzną osobę jako org_admin lub org_billing_admin, a akceptacja zaproszenia tworzy powiązanie roli z pominięciem mechanizmów ochronnych bazy danych.
- CVE-2026-56329Średnie
Podatność w Capgo przed wersją 12.128.2 wynika z niebijectywnego dekodowania podwójnych podkreślników na kropki podczas parsowania nazw hostów wersji zapoznawczych. Atakujący mogą rejestrować identyfikatory aplikacji z podkreślnikami, które kolidują z identyfikatorami z kropkami innych dzierżawców, powodując błędne kierowanie wersji zapoznawczych i odmowę dostępu do wersji zapoznawczych dla ofiar.
- CVE-2026-56279Wysokie
Podatność w Capgo przed wersją 12.128.2 ujawnia informacje poprzez funkcję RPC get_orgs_v7(userid), która jest publicznie wywoływalna mimo zamierzonej prywatnej kontroli dostępu. Nieuwierzytelnieni atakujący mogą podać dowolne UUID użytkownika, aby pobrać dane o członkostwie w organizacjach, rolach, służbowych adresach e-mail i metadanych rozliczeniowych innych użytkowników.
- CVE-2026-56293Średnie
Podatność w Capgo przed wersją 12.128.2 wynika z błędu autoryzacji w funkcji transfer_app(), która nie aktualizuje pola deploy_history.owner_org podczas przenoszenia aplikacji między organizacjami. Atakujący mogą wykorzystać to przeoczenie, aby zachować nieautoryzowany dostęp do historii wdrożeń w źródłowej organizacji lub spowodować utratę dostępu do przeniesionych rekordów wdrożeń w docelowej organizacji.
- CVE-2026-56250Wysokie
Podatność w Capgo przed wersją 12.128.2 pozwala kluczom API z ograniczeniami do przesyłania modyfikować pole app_versions.r2_path przez PostgREST, co umożliwia przekierowanie do dowolnych obiektów R2. Atakujący może ustawić r2_path na obiekt ofiary, usunąć swoją wersję i wywołać funkcję czyszczącą on_version_update, która usunie obiekt ofiary, powodując denial of service.
- CVE-2026-56246Wysokie
Podatność w Capgo przed wersją 12.128.2 umożliwia złamanie kontroli dostępu w API zarządzania organizacjami. Klucz API z ograniczeniem do konkretnych organizacji dziedziczy uprawnienia właściciela, co pozwala na destrukcyjne operacje międzyorganizacyjne.
- CVE-2026-56322Wysokie
Capgo w wersjach przed 12.128.2 zawiera podatność na ujawnienie informacji w nieautoryzowanym punkcie końcowym /updates, który rozwiązuje parametr defaultChannel przed nałożeniem ograniczeń prywatności. Umożliwia to atakującym enumerację prywatnych kanałów oraz ujawnienie stanu wersji i konfiguracji.
- CVE-2026-56234Średnie
Capgo przed wersją 12.128.2 zawiera podatność na walidację poświadczeń w punkcie końcowym POST /functions/v1/private/validate_password_compliance, który można wywołać tylko za pomocą publicznego klucza Supabase bez uwierzytelnienia. Punkt końcowy jest zgodny z CORS i nie ma ograniczeń dotyczących liczby żądań, co umożliwia atakującym przeprowadzanie ataków typu password spraying i credential stuffing.
- CVE-2026-88864Krytyczne
Capgo (capgo.app) nie ogranicza bezpośredniego dostępu zapisu do tabeli public.sso_providers udostępnionej przez Supabase PostgREST. Posiadacz zwykłego pełnego klucza API Capgo może wstawić wiersz ze statusem 'active' i enforce_sso=true, omijając zamierzoną ścieżkę provisioningu SSO i jej kontrole (wymóg planu Enterprise, tworzenie dostawcy przez Supabase Management API, weryfikację własności domeny przez DNS TXT, przejście statusów pending_verification → verified → active oraz wydanie zaufanego identyfikatora dostawcy przez Supabase Auth). Sfałszowany wiersz jest uznawany przez logikę wykrywania i wymuszania SSO, w tym nieuwierzytelniony endpoint preflight /private/sso/check-domain, który zgłasza {"has_sso": true, "enforce_sso": true} dla domen nigdy niezweryfikowanych.
- CVE-2026-100629Średnie
Capgo (backend capgo.app) przed wersją 12.127.5 zawiera błąd autoryzacji w punkcie końcowym PATCH /private/role_bindings/:binding_id. Handler sprawdza jedynie rangę nowo przypisywanej roli, ale nie weryfikuje rangi roli aktualnie powiązanej z danym bindingiem, co pozwala użytkownikowi z rolą org_admin (ranga 90) obniżyć uprawnienia org_super_admin (ranga 95) do roli niższej, np. org_member (ranga 75).
Oryginalny opis (angielski, źródło NVD)
Capgo before 12.128.2 contains a broken object level authorization (BOLA) vulnerability in the POST /build/start/:jobId and POST /build/cancel/:jobId endpoints. The handlers authorize the request based only on the attacker-controlled app_id supplied in the request body and never verify that the jobId in the URL belongs to that app_id (or the same tenant/org) before issuing privileged builder commands with the server-held builder API key. An authenticated user with the app.build_native permission for any app they control can start or cancel arbitrary builder jobs belonging to other tenants by supplying a victim jobId, resulting in cross-tenant build sabotage (denial of service), unauthorized compute actions, and potential billing impact.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

