Il 27 aprile 2026, un ricercatore nel campo della sicurezza ha reso pubblico che la configurazione degli interruttori di funzionalità lato client di ClickUp esponeva informazioni di identificazione personale. Nello specifico, 893 indirizzi e-mail dei clienti erano stati inseriti nelle regole di targeting degli interruttori di funzionalità, insieme a un interruttore che faceva riferimento in modo improprio al token API di un cliente, utilizzato durante un intervento di risposta agli incidenti per stabilire un limite di frequenza per il traffico proveniente da quell’area di lavoro.
Avremmo dovuto accorgercene prima. Non l’abbiamo fatto, e vi dobbiamo una spiegazione chiara su cosa sia successo, perché, quali misure abbiamo adottato e come intendiamo migliorare in futuro.
Sei tra le persone colpite?
La violazione ha interessato solo 893 indirizzi e-mail di clienti utilizzati nelle regole di targeting degli interruttori di funzionalità per determinare quali utenti vedessero determinate funzionalità durante le fasi di implementazione.
Se hai ricevuto una comunicazione diretta entro il 29 aprile (in corso), il tuo indirizzo e-mail era incluso nella configurazione degli interruttori di funzionalità. Se non hai ricevuto alcuna comunicazione da parte nostra, il tuo indirizzo e-mail non era presente nell'elenco degli indirizzi e-mail.
- Nessun contenuto dell'area di lavoro (attività, documenti, file o dati di progetto) è stato reso accessibile a nessun cliente, con una sola potenziale eccezione descritta di seguito.
- Non sono state divulgate password, dati di fatturazione o credenziali per l'account.
- Nessun sistema di autenticazione è stato compromesso.
Il problema tecnico
ClickUp utilizza Split.io (ora parte di Harness) per la gestione degli interruttori di funzionalità. Come la maggior parte degli SDK per gli interruttori di funzionalità lato browser, Split.io richiede una chiave SDK lato client incorporata nel bundle JavaScript dell'applicazione. Questa chiave è volutamente pubblica ed è il modo in cui l'SDK valuta gli interruttori di funzionalità per l'utente corrente nel browser. Si tratta di un comportamento standard e documentato su Split.io, LaunchDarkly e piattaforme simili, e non costituisce una vulnerabilità.
La chiave non è il problema in sé, ma ciò che i nostri ingegneri inseriscono nelle configurazioni delle flag.
Ecco cosa è successo dal punto di vista architettonico: le piattaforme di interruttori di funzionalità consentono agli ingegneri di indirizzare il lancio delle funzionalità a utenti specifici. I team di ingegneri di ClickUp avevano utilizzato gli indirizzi e-mail direttamente nelle regole di targeting dei flag. Un esempio è l'abilitazione di una funzionalità/funzione per un gruppo specifico di beta tester. L'endpoint splitChanges dell'SDK di Split.io, interrogabile pubblicamente, restituisce l'insieme completo delle definizioni dei flag, comprese queste regole di targeting. Ciò significa che chiunque possedesse la chiave lato client (che, ribadiamo, si trova intenzionalmente nel nostro codice frontend) avrebbe potuto recuperare tali definizioni dei flag ed estrarre gli indirizzi e-mail in esse incorporati.
Gli ingegneri hanno considerato le configurazioni dei flag come strumenti interni, mentre l'architettura dell'SDK le rende, per impostazione predefinita, consultabili pubblicamente. Ciò ha permesso che gli indirizzi e-mail si accumulassero in un luogo in cui non avrebbero mai dovuto trovarsi. Gli aggiornamenti degli interruttori di funzionalità richiedono una revisione tra pari di livello +1, analogamente al codice. Questo passaggio di revisione non ha individuato il problema.
L'unica eccezione: un flag configurato per stabilire un limite di frequenza per un singolo cliente
Un tecnico di turno, intervenuto in seguito a un abuso dell'API, ha inserito il token API di un cliente nella configurazione di un flag di limite di frequenza per regolare il traffico, rendendolo potenzialmente leggibile tramite l'endpoint dell'SDK. Ciò non sarebbe mai dovuto accadere: le credenziali non devono essere inserite nelle configurazioni dei flag. Abbiamo disabilitato immediatamente il token e, al momento, l'analisi dei nostri log non mostra segni di accessi malevoli al di fuori dell'indagine condotta dallo stesso ricercatore. Nessun altro token dei clienti o dato dell'area di lavoro era accessibile e stiamo collaborando direttamente con questo cliente.
Cosa è stato rivelato e cosa no
| Richiesta | La nostra conclusione |
| Chiave SDK hardcoded nel pacchetto | È corretto ed è previsto dal design. È così che funzionano gli SDK degli interruttori di funzionalità lato browser. Non si tratta di una vulnerabilità in sé. |
| 893 indirizzi email dei clienti nelle regole di targeting per bandiera | Informazioni corrette al momento della reportistica. Tutti gli indirizzi email di terzi sono stati rimossi alle 03:25 UTC del 28 aprile. |
| Token API del cliente attivo nella configurazione dei flag | Confermato. Aggiunto il 7 ottobre 2025. Annullato il 27 aprile 2026 alle 12:05 UTC. |
| Accesso in scrittura a Split.io | È corretto ed è previsto dal design. Gli endpoint di telemetria dell'SDK del browser (eventi/bulk, testImpressions) accettano operazioni di scrittura come parte del comportamento standard dell'SDK. Non si tratta di un errore di configurazione di ClickUp. |
| «Nessun intervento di bonifica per 15 mesi» | Informazione errata; le date sono corrette. Il rapporto originale del 17 gennaio 2025 relativo al bug bounty sulla chiave SDK non ha dato luogo a un'attività tecnica, poiché la chiave di per sé non costituisce una vulnerabilità. Il vero problema riguardava gli indirizzi email e le configurazioni dei flag, che non erano inclusi nel rapporto originale. Le configurazioni dei flag sono state comunicate a HackerOne solo l'8 aprile 2026 e ClickUp ne è venuta a conoscenza solo il 27 aprile 2026. |
Sequenza
Ci impegniamo a garantire la massima trasparenza sui punti in cui i nostri processi hanno fallito, compresi gli errori commessi dal nostro provider esterno di bug bounty e dai nostri strumenti di comunicazione interni.
| Data | Evento |
| 17 gennaio 2025 | Un ricercatore ha segnalato la divulgazione della chiave dell'SDK di Split.io al nostro programma di bug bounty su BugCrowd. Considerato il contenuto della segnalazione, questa è stata correttamente classificata come "informativa" sia da BugCrowd che da ClickUp. |
| 3 giugno 2025 | ClickUp trasferisce il programma di bug bounty su HackerOne. Tutte le segnalazioni precedenti sono state migrate correttamente, compreso il problema sopra indicato. |
| 8 aprile 2026 | Il ricercatore con lo pseudonimo impulsive ha pubblicato su HackerOne un nuovo rapporto dettagliato in cui documenta un impatto più ampio: 893 indirizzi e-mail dei clienti nelle regole di segnalazione, il token API attivo dei clienti e altri dati operativi. |
| 10 aprile 2026 | Un analista di triage di HackerOne ha erroneamente chiuso la segnalazione come duplicato della segnalazione del gennaio 2025, trascurando il fatto che la nuova segnalazione documentava un impatto sostanzialmente diverso e più ampio. Da un'ulteriore analisi abbiamo individuato altre due istanze di segnalazioni simili chiuse erroneamente: una il 6 settembre 2025 e l'altra il 1° gennaio 2026 |
| 21 aprile 2026 | Il ricercatore contesta la chiusura fornendo ulteriori dettagli a HackerOne. |
| 25 aprile 2026 | Il ricercatore intensifica la pressione: invia un'email al CEO di ClickUp e all'indirizzo security@clickup.com tramite HackerOne, e invia un messaggio diretto a ClickUp su X fissando il 2 maggio come termine ultimo per la divulgazione pubblica. Queste email indirizzate al CEO di ClickUp e all'indirizzo security@ vengono intercettate dai filtri antispam e non raggiungono i destinatari previsti. I messaggi diretti inviati a ClickUp su X sono stati filtrati automaticamente e non sono stati letti. |
| 27 aprile 2026, ore 10:42 UTC | Il ricercatore rende pubblica l'informazione su X. |
| 27 aprile 2026, ore 11:06 UTC | ClickUp viene informato. Viene segnalato un incidente. Si avvia la procedura di risposta agli incidenti e viene avviata la procedura di rotazione del token API del cliente. |
| 27 aprile 2026, dalle 12:53 alle 14:12 UTC | Prime operazioni di pulizia dei flag di split tra i team di ingegneri. |
| 27 aprile 2026, ore 17:00 UTC | È stata completata la verifica completamente automatizzata di tutti i 4.809 interruttori di funzionalità. |
| 27 aprile 2026, ore 23:13 UTC | Gli ingegneri di ClickUp e Harness (Split) esaminano i dettagli tecnici. |
| 28 aprile 2026, ore 03:25 UTC | Tutti gli indirizzi e-mail dei clienti sono stati rimossi dalle configurazioni dei flag. Nota: alcuni indirizzi e-mail di terze parti sono stati intenzionalmente mantenuti in due flag a causa di un utilizzo fraudolento. |
Dove il nostro processo ha fallito
Qui sono andate storte tre cose, e vogliamo indicarle chiaramente una per una. Parleremo delle modifiche nella sezione seguente.
1. Mancato seguito al rapporto originale. Il rapporto sul programma di ricompensa per la segnalazione di bug del gennaio 2025 avrebbe potuto avere come risultato l'assegnazione di un'attività tecnica e una verifica dei dati contenuti nelle configurazioni dei flag. Ciò non è avvenuto. Stiamo aggiornando il nostro processo di valutazione per evitare che ciò si ripeta in futuro.
2. HackerOne ha gestito in modo errato la chiusura per duplicato. La segnalazione dell'aprile 2026 documentava un impatto sostanzialmente nuovo rispetto a quella del gennaio 2025. HackerOne non avrebbe dovuto chiuderla come duplicato. Da un'ulteriore analisi, abbiamo individuato altre due istanze di segnalazioni simili che sono state chiuse: una il 6 settembre 2025 e l'altra il 1° gennaio 2026. Stiamo collaborando con HackerOne per colmare le lacune nei loro processi di triage. Includeremo una revisione secondaria di tutte le segnalazioni di HackerOne per assicurarci di non dipendere da processi di terze parti in futuro.
3. Il nostro servizio di posta elettronica ha segnalato la segnalazione del ricercatore come spam. Sabato 25 aprile, il ricercatore ha inviato un'email sia al nostro amministratore delegato che all'indirizzo security@clickup.com e ha inviato un messaggio diretto all'account X di ClickUp.
Abbiamo visto queste email solo dopo la pubblicazione del post su X. Sono state individuate a seguito di un'indagine interna sulle cartelle dello spam e sul sistema di filtraggio dei messaggi diretti di X.
Stiamo aggiornando i nostri processi di filtraggio delle email e di controllo dello spam per garantire che le comunicazioni in entrata relative alla sicurezza non vengano ignorate.
Nessuna di queste giustificazioni può nascondere il problema fondamentale: i dati dei clienti non avrebbero mai dovuto trovarsi nelle configurazioni dei nostri interruttori di funzionalità.
Cosa abbiamo fatto
Immediato (completato)
- Il token API del cliente esposto è stato invalidato.
- Sono stati rimossi tutti gli indirizzi e-mail dei clienti dalle configurazioni degli interruttori di funzionalità.
- È stato emesso un problema a livello di reparto tecnico che vieta l'inserimento di dati personali identificativi o credenziali nelle configurazioni dei flag.
- È stata completata una verifica completa di tutti gli interruttori di funzionalità relativi a informazioni di identificazione personale (PII), credenziali e dati sensibili.
A breve termine (in corso)
- Abbiamo aggiornato le regole di filtraggio delle email per garantire che security@clickup.com metta in evidenza tutte le comunicazioni relative alla sicurezza in arrivo, aggiungendo un passaggio al processo per esaminare (in modo sicuro) i messaggi di spam.
- Revisione dei flussi di lavoro di triage del programma bug bounty con HackerOne per evitare che segnalazioni valide vengano chiuse erroneamente.
- Formazione dei revisori degli interruttori di funzionalità sui contenuti approvati.
A lungo termine
- Scansione automatica di tutte le configurazioni degli interruttori di funzionalità alla ricerca di modelli di dati personali (indirizzi email, token, chiavi API) ad ogni modifica degli interruttori di funzionalità, con applicazione delle misure di blocco.
- Un processo automatizzato e strumenti per la revisione di tutte le decisioni di triage di HackerOne.
- Implementare un proxy o una misura tecnica per separare i flag del front-end da quelli del back-end.
Una nota sul ricercatore
Una volta che ClickUp è entrata in contatto con il ricercatore che ha reso nota la notizia, noto con lo pseudonimo impulsive / @weezerOSINT, ha agito in modo responsabile e ha fornito tutte le informazioni richieste.
Il ricercatore, che opera con lo pseudonimo impulsive / @weezerOSINT, ha segnalato il problema attraverso i canali appropriati (HackerOne, poi tramite email diretta all'indirizzo sicurezza@clickup.com e al nostro amministratore delegato) e ha collaborato in modo costruttivo quando lo abbiamo contattato. Le nostre procedure interne non sono riuscite a individuare tempestivamente la sua segnalazione e le successive segnalazioni a livelli superiori.
Dopo aver collaborato con il ricercatore, ClickUp ha ricevuto il seguente messaggio il 28 aprile alle 1:47 UTC: «Grazie [ClickUp], apprezzo davvero la rapidità con cui avete agito. Non è una cosa che vedo spesso e fa davvero la differenza.»
ClickUp ricompenserà il ricercatore con un premio per la segnalazione del bug. Invitiamo altri ricercatori a partecipare al nostro programma Bug Bounty, a segnalare i bug in modo responsabile tramite il nostro Programma di segnalazione delle vulnerabilità o direttamente via email all'indirizzo security@clickup.com.
Riepilogo/riassunto
I dati compromessi in questo incidente si sono limitati a 893 indirizzi e-mail: nessun contenuto dell'area di lavoro, nessuna password né alcun dato di fatturazione di alcun cliente sono stati interessati, ad eccezione di un unico cliente menzionato sopra; stiamo collaborando direttamente con lui per verificare che non vi sia stato un accesso non autorizzato alla chiave.
Ci scusiamo profondamente con i nostri clienti per quanto accaduto e faremo tutto il possibile per garantire che una situazione del genere non si ripeta.
Aggiorneremo questo post qualora dovessero emergere nuove informazioni. Per qualsiasi domanda, contattate sicurezza@ClickUp.com.
