Megalodon: 5.561 repository GitHub compromessi in sei ore con workflow CI/CD malevoli
@Informatica (Italy e non Italy)
In sei ore il 18 maggio 2026, la campagna automatizzata Megalodon ha iniettato 5.718 commit malevoli in 5.561 repository GitHub, esfiltrandone credenziali cloud, chiavi SSH e segreti CI/CD verso un C2 esterno. L'operazione, collegata al gruppo
Megalodon: 5.561 repository GitHub compromessi in sei ore con workflow CI/CD malevoli
In sei ore, tra le 11:36 e le 17:48 UTC del 18 maggio 2026, una campagna automatizzata denominata Megalodon ha iniettato 5.718 commit malevoli in 5.561 repository GitHub, esfiltrandone segreti CI/CD, credenziali cloud, chiavi SSH e token API verso un server di comando e controllo. È l’attacco alla supply chain dello sviluppo software più rapido e capillare mai documentato, e fa parte di un’ondata più ampia che sta ridisegnando il panorama delle minacce per sviluppatori e team DevOps.Come funziona Megalodon: l’automazione al servizio del compromesso di massa
I ricercatori di SafeDep e StepSecurity hanno analizzato la campagna in dettaglio. L’attaccante ha utilizzato account GitHub usa-e-getta con username alfanumerici casuali di 8 caratteri (es.rkb8el9r,bhlru9nr,lo6wt4t6), configurando git per falsificare l’identità dell’autore con nomi plausibili —build-bot,auto-ci,ci-bot,pipeline-bot— e indirizzi email automatizzati comebuild-system@noreply.dev. Questi nomi mimano la normale attività di automazione CI/CD, riducendo drasticamente la probabilità che un commit sospetto venga rilevato durante una code review.Il payload iniettato è un workflow GitHub Actions contenente uno script bash codificato in Base64. Una volta che il proprietario del repository accetta il pull request o effettua un push, il workflow si attiva nella pipeline CI/CD e procede all’esfiltrazione massiva di dati verso il C2 all’indirizzo
216.126.225[.]129:8443.Dati esfiltrati: una lista completa
La lista di informazioni sottratte dalla campagna Megalodon è particolarmente estesa e rivela quanto profondamente il workflow malevolo si radichi nell’ambiente di esecuzione CI/CD:
- Variabili d’ambiente CI,
/proc/*/environe ambiente del processo PID 1- Credenziali AWS (access key, secret key, session token)
- Access token Google Cloud Platform
- Credenziali di ruolo IAM ottenute via AWS IMDSv2, GCP metadata server e Azure IMDS
- Chiavi private SSH
- Configurazioni Docker e Kubernetes
- Vault token (HashiCorp Vault)
- Terraform credentials
- Shell history
- Chiavi API, stringhe di connessione a database, JWT, chiavi PEM private
- GITHUB_TOKEN, token GitLab CI/CD e Bitbucket
- File
.env,credentials.json,service-account.jsone altri file di configurazione sensibili- GitHub Actions OIDC token (URL + token)
# Indicatori di Compromissione - Megalodon # C2 server 216.126.225.129:8443 # Account attaccante (pattern) Username: 8 caratteri alfanumerici casuali (es. rkb8el9r, bhlru9nr, lo6wt4t6) Author forged: build-bot, auto-ci, ci-bot, pipeline-bot Email forged: build-system@noreply.dev, ci-bot@automated.dev # Varianti payload SysDiag - Workflow su ogni push/pull_request (mass variant) Optimize-Build - Workflow su workflow_dispatch (targeted variant, backdoor dormante) # Pacchetto npm compromesso @tiledesk/tiledesk-server versioni 2.18.6 - 2.18.12 # Finestra temporale dell'attacco 18 maggio 2026, 11:36 - 17:48 UTC 5.718 commit su 5.561 repository in ~6 ore # Pacchetti npm malevoli (Polymarket drainer - campagna correlata) polymarket-trading-cli, polymarket-terminal, polymarket-trade polymarket-auto-trade, polymarket-copy-trading, polymarket-bot polymarket-claude-code, polymarket-ai-agent, polymarket-trader Endpoint esfiltrazione: hxxps://polymarketbot.polymarketdev.workers[.]dev/v1/wallets/keysDue varianti per due obiettivi
L’analisi tecnica ha identificato due varianti del payload con finalità diverse. La variante SysDiag è quella di massa: aggiunge un workflow attivato da ogni push e pull request, massimizzando le opportunità di esecuzione. La variante Optimize-Build è più chirurgica: sostituisce i workflow esistenti con triggerworkflow_dispatch, creando backdoor dormienti che l’attaccante può attivare on-demand tramite le API di GitHub. Nel caso di@tiledesk/tiledesk-serverè stata utilizzata la variante targeted, che colpisce i CI/CD runner ma non si attiva quando il pacchetto npm viene semplicemente installato dagli utenti finali.“Il compromesso di GitHub da parte di TeamPCP era solo l’inizio”, ha dichiarato Moshe Siman Tov Bustan di OX Security. “Quello che arriverà è un’ondata infinita, uno tsunami di attacchi cyber contro sviluppatori in tutto il mondo.”
Il contesto: TeamPCP e l’ecosistema open source sotto attacco
Megalodon si inserisce in una serie di attacchi orchestrati dal gruppo TeamPCP, che ha sfruttato la natura interconnessa della supply chain software per compromettere centinaia di progetti open source in modalità worm-like. Tra le vittime precedenti: TanStack, Grafana Labs, OpenAI, Mistral AI e ora GitHub direttamente. Il gruppo ha stabilito partnership con BreachForums e crew di estorsione come LAPSUS$ e VECT, combinando motivazioni finanziarie con possibili interessi geopolitici: è stato documentato il deployment di wiper malware su macchine localizzate in Iran e Israele.La risposta di npm all’ondata di attacchi è stata drastica: invalidazione di tutti i token di accesso granulare con write access che bypassano l’autenticazione a due fattori. NPM ha anche raccomandato il passaggio a Trusted Publishing per ridurre la dipendenza da questi token. Come ha sottolineato Socket, però, l’intervento compra tempo ma non chiude la vulnerabilità sottostante: finché il worm è attivo, continuerà a raccogliere nuovi token non appena i maintainer ne genereranno di nuovi.
Due righe per i difensori
La campagna Megalodon evidenzia debolezze strutturali nella sicurezza delle pipeline CI/CD. I team DevSecOps dovrebbero adottare le seguenti contromisure:
- Abilitare il pinning dei workflow: configurare i GitHub Actions workflow per usare SHA commit espliciti invece di tag mutabili (es.
uses: actions/checkout@abc1234invece di@v3), rendendo impossibile la sostituzione silenziosa dei workflow- Implementare policy di branch protection: richiedere review obbligatorie per ogni push su branch principali, con particolare attenzione alle modifiche a file
.github/workflows/- Monitorare le credenziali con secret scanning: strumenti come GitHub Secret Scanning, Trufflehog o Gitleaks possono rilevare credenziali accidentalmente incluse nei commit
- Adottare Trusted Publishing: su npm e PyPI, il Trusted Publishing elimina la necessità di token statici che possono essere rubati
- Revisione dei permessi GITHUB_TOKEN: limitare i permessi del token al minimo necessario per il workflow specifico, usando
permissions:nel file YAML- Audit degli accessi OIDC: implementare policy rigorose per i token OIDC usati per l’accesso a cloud provider da pipeline CI
- Alerting su deployment key e PAT: monitorare l’uso di Personal Access Token e deploy key, revocando immediatamente quelli non più in uso
Megalodon rappresenta un punto di svolta nella storia degli attacchi alla supply chain: la capacità di compromettere oltre 5.500 repository in meno di sei ore, utilizzando tecniche di evasione che mimano il normale traffico CI/CD, suggerisce un livello di automazione e pianificazione che andrà oltre i singoli episodi. La domanda non è più se una pipeline subirà un tentativo di compromissione, ma quando — e se l’organizzazione ha le visibility necessarie per accorgersene in tempo.