CVE-2026-56082: Adgangsfejl i Capgo build-logs
Fejl i Capgo lader angribere uden login ændre andre firmaers build-logs og opblæse fakturerbar byggetid. Opdatér til 12.128.2.
Hvad er det?
Capgo er en platform til at sende live-opdateringer til mobilapper bygget med Capacitor, uden at skulle igennem app store-godkendelse. Sårbarheden ligger i en databasefunktion kaldet record_build_time, som kører med udvidede rettigheder (SECURITY DEFINER) i det bagvedliggende Supabase-system. Funktionen er ved en fejl tilgængelig for alle, også uautentificerede brugere, via den offentlige API-nøgle. Fordi funktionen opdaterer eksisterende rækker i stedet for kun at oprette nye, kan en angriber genbruge et bygge-id og dermed overskrive en anden organisations byggelog med falske tal for byggetid.
Hvem rammer det?
Det rammer virksomheder, der kører deres egen installation af Capgo (open source) sammen med Supabase, i version før 12.128.2. Det gælder typisk app-udviklingsbureauer og softwarehuse, der bruger Capgo til at styre live-opdateringer for flere kunders apper på samme platform. Er I kunde hos en tredjepart, der hoster Capgo for jer, er det den tredjeparts ansvar at opdatere.
Hvad kan ske?
En angriber kan uden at logge ind indsætte eller ændre byggelogs, der hører til andre organisationer på samme Capgo-installation. I praksis kan det bruges til at opblæse den registrerede byggetid for en organisation, hvilket skævvrider forbrug og fakturering. For et bureau, der fakturerer kunder efter byggeforbrug, kan det betyde forkerte fakturaer, tvister med kunder og tid brugt på at rydde op i data, der ikke kan skelnes fra ægte forbrug.
Hvor alvorligt er det?
CVSS-scoren er 7,5 ud af 10, alvorlig. Angrebet kræver ingen login (PR:N), ingen handling fra en bruger (UI:N) og kan udføres over internettet med lav kompleksitet. Fortrolighed påvirkes ikke, men integriteten er ramt hårdt: angriberen kan ændre data, de ikke har ret til. Der er ingen tegn på, at sårbarheden aktivt bliver udnyttet, men den kræver kun kendskab til den offentlige API-nøgle, som i sagens natur er tilgængelig for alle, der bruger appen.
Hvad gør jeg nu?
Kør igennem punkterne i denne rækkefølge:
- Opdatér jeres Capgo-installation til version 12.128.2 eller nyere. Det fjerner de utilsigtede rettigheder på funktionen.
- Kan I ikke opdatere med det samme, så fjern manuelt anon-rollens ret til at kalde record_build_time i jeres Supabase-database.
- Gennemgå tabellen build_logs for uventede eller dubletagtige rækker med samme bygge-id på tværs af organisationer.
- Sammenlign registreret byggetid med jeres egne byggeserverlogs for de sidste måneder, hvis I fakturerer kunder efter forbrug.
- Har I fundet tegn på manipulerede data, eller er I i tvivl om, hvordan I retter rettighederne i Supabase, så bør I hente hjælp udefra.
Opdatér inden for en uge
Vi anbefaler, at I opdaterer til version 12.128.2 snarest, da rettelsen er enkel og fejlen kan udnyttes uden login. Det er i orden at vente til jeres næste planlagte vedligeholdelsesvindue, hvis I ikke fakturerer kunder efter byggeforbrug og kan overvåge for uregelmæssigheder i mellemtiden. Bruger I derimod byggetid som grundlag for fakturering, bør I prioritere opdateringen og en gennemgang af historiske data højt.
Tidslinje
Konkrete eksempler
Bureau med flere kunder på samme Capgo-installation
Et dansk app-bureau kører Capgo selv og fakturerer sine kunder efter byggetid. En udenforstående, der kender den offentlige API-nøgle fra en af kundernes apper, indsætter kunstigt høj byggetid for en anden kundes organisation. Kunden protesterer mod en unormalt høj faktura, og bureauet skal bruge tid på at bevise, at forbruget ikke er reelt.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
I er ramt, hvis I selv kører Capgo sammen med Supabase i en version ældre end 12.128.2. Bruger I en hostet løsning fra en tredjepart, skal I spørge leverandøren om deres version.
Hvordan tjekker vi, om vi har været udsat for misbrug?
Slå op i tabellen build_logs efter rækker, hvor byggetiden ikke matcher jeres egne byggeserverlogs, eller hvor samme bygge-id går igen for flere organisationer.
Kan vi vente til weekenden med at opdatere?
Ja, hvis I ikke fakturerer kunder efter byggeforbrug. Fakturerer I efter forbrug, bør opdateringen prioriteres inden for få dage.
Kræver angrebet, at angriberen har en konto hos os?
Nej. Funktionen kan kaldes med den offentlige, ikke-hemmelige API-nøgle, som findes indbygget i jeres app. Angriberen behøver ikke logge ind.
Skal vi anmelde dette som en sikkerhedshændelse?
Kun hvis I finder konkrete tegn på, at data er blevet manipuleret. Er der ikke sket noget udover den tekniske mulighed, er det tilstrækkeligt at opdatere og dokumentere det.
Påvirker fejlen fortrolige data som kundeoplysninger?
Nej. CVSS-vurderingen viser ingen påvirkning af fortrolighed. Fejlen handler om at kunne ændre byggelogs, ikke om at læse andre data.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
Capgo (Cap-go/capgo) before 12.128.2 contains an improper access control vulnerability in the SECURITY DEFINER PostgREST RPC function public.record_build_time, which is granted to the anon role and callable with only the public Supabase publishable (sb_publishable_*) anon key. An unauthenticated attacker can insert rows into public.build_logs for arbitrary organizations and, because the function uses ON CONFLICT (build_id, org_id) DO UPDATE, can overwrite existing usage/billing records by reusing the same build_id for a target org. This enables cross-tenant tampering of billing build logs and financial-impact denial of service by inflating billable build time.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.