CVE-2026-100618
WysokieCVSS 8.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Capgo (capgo.app) jest dotknięty błędem autoryzacji w ścieżce aktualizacji ikony aplikacji. Endpoint PUT /app/:id akceptuje kontrolowaną przez użytkownika wartość `icon`, normalizuje ją i przechowuje w public.apps.icon_url bez weryfikacji, czy ścieżka obrazu należy do własnej przestrzeni nazw obrazów docelowej aplikacji (np. org/{owner_org}/{app_id}/...). Aktualizacja apps.icon_url wyzwala trigger on_app_update, którego worker odczytuje record.icon_url i wywołuje cleanStoredImageMetadata(), który działa z poświadczeniami roli usługi (supabaseAdmin()) i pobiera oraz ponownie przesyła referencyjny obiekt magazynu z upsert: true. W rezultacie uwierzytelniony posiadacz klucza API z ograniczonym zapisem do aplikacji może spowodować, że uprzywilejowany worker nadpisze prywatny obiekt obrazu poza zakresem (na przykład logo organizacji), którego klucz nie może odczytać ani zapisać bezpośrednio w ramach Supabase Storage RLS. Wszystkie wersje są podatne; w momencie publikacji biuletynu nie było dostępnej wersji z poprawką.
Ocena ryzyka
Uwierzytelniony użytkownik z ograniczonym kluczem API może nadpisać prywatne obrazy poza swoim zakresem, takie jak logo organizacji. Może to prowadzić do nieautoryzowanej modyfikacji zasobów i potencjalnego defacementu.
Rekomendacja
Brak dostępnej poprawki; monitoruj oficjalne komunikaty Capgo i zastosuj aktualizację, gdy będzie dostępna. Ogranicz uprawnienia do aktualizacji ikon aplikacji i monitoruj nietypowe zmiany w icon_url.
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-56335Średnie
Podatność w Capgo przed wersją 12.128.2 umożliwia ominięcie autoryzacji, gdzie klucze API z zakresem zapisu mogą bezpośrednio modyfikować chronione pola konfiguracji kanałów przez PostgREST, wykorzystując brak sprawdzania uwierzytelnienia w wyzwalaczu niezmienności. Atakujący z kluczami API do zapisu mogą zmieniać wrażliwe atrybuty kanałów, takie jak public, allow_emulator i flagi związane z bezpieczeństwem, poza zamierzonymi ścieżkami aplikacji.
- 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-56312Średnie
Podatność w Capgo przed wersją 12.128.2 w punkcie końcowym accept_invitation powoduje, że konta użytkowników są tworzone przed weryfikacją captcha. Atakujący mogą ominąć ochronę captcha, wysyłając żądania POST z nieprawidłowymi tokenami captcha, co umożliwia tworzenie niechcianych kont i wypalanie linków zaproszeń.
- CVE-2026-56309Średnie
Podatność w Capgo przed wersją 12.128.2 nie egzekwuje ograniczeń planu/kwoty na endpointcie /files/upload/attachments, co pozwala aplikacjom zablokowanym przez plan na tworzenie publicznie czytelnych obiektów R2. Atakujący mogą przesyłać dowolne załączniki przy użyciu kluczy API z zakresem upload, które omijają sprawdzanie planu, utrzymują się poza normalnymi metadanymi pakietu i przetrwają usunięcie aplikacji, umożliwiając nadużycie pamięci i przepustowości.
- 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-56298Średnie
Podatność w Capgo przed wersją 12.128.2 polega na braku usuwania metadanych EXIF z obrazów przesyłanych przez endpoint informacji o aplikacji. Umożliwia to atakującym wyodrębnienie danych geolokalizacyjnych i innych metadanych z przesłanych plikó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-56283Średnie
Podatność HTML injection w Capgo przed wersją 12.128.2 w punkcie końcowym ustawień organizacji umożliwia atakującym wstrzyknięcie złośliwego kodu HTML. Poprzez pole nazwy organizacji mogą oni przekierowywać użytkowników na niebezpieczne strony, co prowadzi do ataków phishingowych i szkód w reputacji.
- 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.
Oryginalny opis (angielski, źródło NVD)
Capgo (capgo.app) is affected by an authorization flaw in the app icon update path. The PUT /app/:id endpoint accepts a user-controlled `icon` value, normalizes it, and stores it in public.apps.icon_url without verifying that the image path belongs to the target app's own image namespace (e.g. org/{owner_org}/{app_id}/...). Updating apps.icon_url fires the on_app_update trigger, whose worker reads record.icon_url and calls cleanStoredImageMetadata(), which runs with service-role credentials (supabaseAdmin()) and downloads and re-uploads the referenced storage object with upsert: true. As a result, an authenticated holder of an app-limited write API key can cause the privileged worker to rewrite an out-of-scope private image object (for example an organization logo) that the key cannot read or write directly under Supabase Storage RLS. All versions are affected; no patched version was available at the time of the advisory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

