Programma Bug Bounty
Capgo è impegnata nella sicurezza e nella trasparenza. Tutto il nostro code è open source, e invitiamo i ricercatori di sicurezza ad aiutarci a identificare vulnerabilità nel nostro codebase.
Code Open Source
Ogni repository nell'organizzazione Capgo è open source. Puoi revisionare, auditare e contribuire al nostro code.
Organizzazione GitHub: github.com/Cap-go
Capgo Backend & Landing
Repository backend e prodotto di Capgo (capgo.app API, dashboard e servizi correlati)
Plugin Updater Capacitor
Il plugin core di Capacitor che gestisce gli aggiornamenti over-the-air sui dispositivi mobile
Requisiti per i Report Validi
Per partecipare al programma Bug Bounty, il tuo report deve soddisfare TUTTI i seguenti requisiti:
- Devi identificare il file esatto e il numero di riga nel nostro repository GitHub in cui risiede la vulnerabilità
- Il report deve essere inviato tramite la GitHub Security Advisory sul repository pertinente
- Devi includere una descrizione chiara della vulnerabilità e del suo potenziale impatto
- Devi fornire i passaggi per riprodurre il problema e dimostrarlo
Importante: Se non riesci a indicare la riga esatta di code in GitHub dove risiede il problema, il report non sarà idoneo per il programma Bug Bounty. I report devono essere inviati esclusivamente tramite GitHub Security Advisory. I pagamenti sono gestiti tramite Algora.io; ti preghiamo di creare un account per ricevere i pagamenti direttamente sulla piattaforma.
Tempi di risposta e rispetto
Siamo disponibili e paghiamo per i report validi, ma non possiamo collaborare con chi non rispetta i nostri tempi. Ti chiediamo di mantenere una comunicazione calma e di seguire le regole di questo programma.
- Rispondiamo ai report di sicurezza e alle violazioni entro 24-72 ore.
- Non inviare spam. Più di tre email in un singolo giorno saranno considerate spam e bloccate.
- Non paghiamo i report che ignorano queste regole o che sono spam.
- Sono accettati solo i report in scope che seguono questo programma bug bounty; qualsiasi altra segnalazione potrebbe essere bloccata.
- Non chiedere aggiornamenti sullo stato, come ad esempio "hai controllato?" o domande simili. Una volta confermata la ricezione della segnalazione, è sufficiente. Dopo tale conferma, resta ancora molto lavoro da fare e la preparazione di una pull request può richiedere diversi giorni.
Importante: Capgo è una piccola realtà bootstrapped, quindi i nostri bounty sono inferiori rispetto ai programmi delle grandi aziende. Le segnalazioni senza un chiaro percorso di exploit vengono pagate fino a un massimo di $30. Gli exploit con un impatto reale e riproducibile su Capgo vengono pagati fino a un massimo di $300. Accettiamo e revisioniamo segnalazioni di sicurezza per i plugin Capgo, ma i bounty per i plugin code sono limitati a @capgo/capacitor-updater.. Gli altri plugin Capgo sono gratuiti e non fanno parte della nostra offerta prodotto a pagamento, quindi le segnalazioni vengono revisionate ma non pagate. I pagamenti vengono emessi solo dopo aver identificato il problema, rilasciato la fix e dopo che avrai verificato che la soluzione funzioni. L'apertura o il link a una pull request non garantiscono di per sé il pagamento. Questo processo richiede solitamente da pochi giorni a qualche settimana, a seconda della gravità e della cadenza dei rilasci. Ti preghiamo di non inviare messaggi come "per essere pagato"; il pagamento avviene solo quando il rilascio è live e tu hai testato e validato la fix.
Come segnalare
- Vai al repository pertinente su GitHub
- Clicca sulla tab "Security"
- Clicca su "Report a vulnerability" per creare un nuovo security advisory
- Includi il percorso esatto del file e il numero di riga in cui risiede la vulnerabilità
- Fornisci passaggi dettagliati per riprodurre il problema e spiega l'impatto sulla sicurezza
Fuori Ambito
- Report senza riferimenti esatti alle righe di code in GitHub
- Report non inviati tramite GitHub Security Advisory
- Vulnerabilità teoriche senza una proof of concept
- Bug in piattaforme di terze parti, dipendenze o servizi che Capgo non può risolvere direttamente (segnalali ai provider, ad esempio a Supabase).
- Tentativi di social engineering o phishing
- Attacchi Denial of Service
- Report di SSRF o DNS spoofing contro webhook o anteprime del sito. Queste funzionalità girano su infrastruttura serverless e non possono essere usate per raggiungere l'infrastruttura privata di Capgo, quindi non sono sfruttabili nel nostro ambiente.
- Configurazione di code dell'app o del progetto di proprietà dell'utente che Capgo non possiede, distribuisce o controlla, inclusi file come capacitor.config.ts, config.capacitor.ts, il codice sorgente code e le impostazioni specifiche dell'ambiente.
- Accesso ai file del bundle Capgo o prova che i file del bundle possono essere scaricati. I file del bundle sono asset web pubblici, gli utenti ne sono informati e l'accesso non è considerato una violazione dei dati.
- Endpoint Capgo plugin/API non autenticati che sono intenzionalmente pubblici per design — inclusi channel_self set e gli endpoint update/stats che non richiedono una API key — non sono vulnerabilità. Non segnalarli come tali.
- Un errore di etichettatura della crittografia nell'uploader o nella UI per i bundle serviti via external_url non è una vulnerabilità Capgo (la crittografia dei bundle ospitati esternamente è fuori dal controllo di Capgo).
Supabase e servizi di terze parti
Se la causa principale è un bug della piattaforma o di un servizio Supabase, segnalalo a Supabase e non a Capgo. Se la logica vulnerabile, SQL, RPC, policy RLS, Edge Function o la configurazione sono stati creati o scelti da Capgo e possiamo risolverli nel nostro progetto, rientrano nel perimetro anche se l'endpoint è servito da Supabase. Per segnalazioni sul comportamento di Supabase, includi un caso riproducibile e l'esatta impostazione o modifica di config di Supabase che lo causa in un progetto configurato come il nostro.
Esempi
Non valido qui
- Un bug, un outage o un comportamento della piattaforma Supabase che solo Supabase può risolvere
- Una vulnerabilità che non riesci a riprodurre
- Un'accusa che incolpa Capgo per il comportamento di Supabase senza mostrare una fix controllata da Capgo o l'esatta impostazione/config di Supabase
Valido qui
- Una misconfigurazione di Supabase controllata da Capgo che possiamo risolvere nelle impostazioni del progetto (con i passaggi)
- Un problema di SQL, RPC, RLS, funzioni o integrazioni di proprietà Capgo che causa un uso insicuro di Supabase
- Un problema riproducibile nel progetto, schema o policy Supabase di Capgo, anche se esposto tramite un endpoint Supabase
Limitazioni note di Supabase Auth (già segnalate)
Alcune vulnerabilità vengono segnalate ripetutamente e sono causate dai default di Supabase Auth o dal comportamento della piattaforma, piuttosto che da Capgo code. Le prendiamo in esame solo se riproducibili in un progetto demo Supabase condiviso e configurato come il nostro, e se la soluzione consiste in una modifica di configurazione lato Supabase che non richieda variazioni alle regole di sicurezza Capgo. Se la fix richiede modifiche a SQL, RPC, policy RLS, funzioni o logica dell'app di proprietà di Capgo, segnalacela perché rientra nel perimetro.
- Fornisci un caso riproducibile e identifica la fix esatta: o la modifica alle impostazioni/configurazione di Supabase che risolve il problema, o l'oggetto code/config di proprietà di Capgo che deve essere modificato.
- Il comportamento della verifica email segue le impostazioni del tuo progetto Supabase Auth (ad esempio, se la conferma email è disabilitata o se viene usato l'auth basato su capture).
- I flussi di aggiornamento password e recupero account potrebbero non richiedere sempre l'inserimento della vecchia password o una nuova verifica se Supabase Auth è configurato in tal senso.
- Se il problema è in questo elenco ma riesci a dimostrare una fix concreta lato Supabase nel progetto fornito o un difetto di sicurezza concreto di proprietà di Capgo, potremo considerarlo nel perimetro.
Per domande sul nostro programma Bug Bounty, contatta il team tramite le GitHub Security Advisories.