Il 1° luglio 2026 i ricercatori di Sekoia e YesWeHack hanno documentato una campagna di supply chain attack che prende di mira esplicitamente i vulnerability researcher e i penetration tester. Il malware, denominato ChocoPoC, si diffonde attraverso repository GitHub di fake proof-of-concept exploit che nascondono un RAT Python nelle dipendenze transitive di pacchetti PyPI. Il meccanismo chiave è l'environmental key gating: il payload rimane dormiente finché non rileva condizioni di esecuzione specifiche, eludendo i controlli automatici delle sandbox standard.
- ChocoPoC è un RAT Python distribuito tramite almeno 7 repository GitHub fake PoC che escano con CVE recenti, con il payload nascosto nella catena di dipendenze
frint→skytextsu PyPI. - L'environmental key gating attiva il malware solo alla presenza di file
EXPLOIT_POC.pyo moduli con firma specifica, rendendo il payload invisibile in analisi sandbox standard. - Il comando e controllo sfrutta dataset Mapbox con domain-fronting (SNI
api.mapbox.com), mentre i file di grandi dimensioni vengono caricati su un server HTTP separato all'indirizzo91.132.163.78. - Secondo Sekoia, il pacchetto
skytextha registrato circa 2.400 download, principalmente su sistemi Linux, con picchi temporali correlati alle disclosure delle CVE utilizzate come esca.
La catena d'attacco: da GitHub a PyPI senza soluzione di continuità
La campagna si basa su una sequenza di fiducia concatenata. I repository GitHub, costruiti per sembrare PoC legittimi di vulnerabilità recenti, inducono il researcher a eseguire codice non verificato nella fretta di testare una CVE appena divulgata. Il file principale installa il pacchetto frint (versione 0.1.2), che a sua volta richiama skytext come dipendenza transitiva. Quest'ultimo contiene estensioni native compilate — gradient.so su Linux e gradient.pyd su Windows — che ospitano il payload effettivo.
Secondo le fonti primarie, il meccanismo di attivazione è preciso e studiato per eludere l'analisi automatizzata. Il malware verifica la presenza di EXPLOIT_POC.py nel filesystem o di moduli con firma specifica prima di eseguire qualsiasi operazione malevola. Senza queste condizioni, il pacchetto si comporta come libreria innocua, superando i controlli di sicurezza standard che eseguono il codice in ambienti isolati.
L'uso di dipendenze transitive è particolarmente insidioso: il researcher vede frint nel file delle dipendenze, ma non ha visibilità immediata su skytext e sul suo contenuto compilato. Questa architettura sfrutta una vulnerabilità strutturale del sistema di packaging Python, dove la nidificazione delle dipendenze rende impraticabile una verifica manuale completa.
Comandi in spagnolo e codice manuale: il profilo dell'attore
Le analisi tecniche hanno rivelato dettagli che caratterizzano l'operatore dietro ChocoPoC. Il codice contiene comandi in spagnolo e presenta bug minori che suggeriscono sviluppo manuale, non generato da strumenti di intelligenza artificiale. Questo elemento, combinato con la raffinatezza del meccanismo di evasione, indica un attore con competenze tecniche consolidate ma non necessariamente accesso a risorse di classe enterprise.
Sekoia ha valutato con alta confidenza che un singolo attore sia responsabile sia della campagna attuale (frint/skytext) sia di una precedente, risalente alla fine del 2025, che impiegava i pacchetti slogsec e logcrypt.cryptography. Entrambe le campagne condividono lo stesso payload ChocoPoC e strutture di codice molto simili, indicando continuità operativa nel tempo. L'identità specifica del gruppo o dell'individuo non è stata determinata: il dossier non contiene sovrapposizioni infrastrutturali che colleghino l'operatore a gruppi noti come Lazarus o MUT-1244, citati solo come precedenti storici di campagne analoghe con fake PoC.
"According to these findings, we assess with high confidence that the attacker primarily employed compromised accounts to publish malicious PyPI packages and PoCs"
— Ricercatori Sekoia, via BleepingComputer
Account compromessi e costruzione dell'infrastruttura
La fonte primaria BleepingComputer riporta che gli account GitHub, PyPI e Mapbox utilizzati nella campagna sono stati costruiti con credenziali leaked o rubate da infostealer. Almeno tre email associate ai committer GitHub sono risultate presenti in database di leak pubblici; una di queste è stata classificata come "highly likely" proveniente da un infostealer. Questo dettaglio operativo è significativo: non indica una compromissione delle piattaforme stesse, ma piuttosto il riutilizzo di credenziali precedentemente esfiltrate per costruire un'identità credibile nell'ecosistema open source.
L'infrastruttura di comando e controllo mostra altrettanta attenzione al camuffamento. Il downloader forza l'SNI verso api.mapbox.com e utilizza HTTPS per mimetizzarsi nel traffico legittimo verso il servizio di mapping. CyberPress.org ha documentato hash SHA-256 specifici per skytext (versione 1.1.0), frint (0.1.2) e slogsec, confermando la joint investigation Sekoia-YesWeHack e fornendo indicatori di compromissione verificabili.
Target ad alto valore: perché i researcher sono il punto debole
La scelta di targeting non è casuale. I vulnerability researcher e i penetration tester operano con privilegi elevati, hanno accesso a credenziali client, report su vulnerabilità non pubbliche, e strumenti di accesso remoto già installati nelle loro macchine. La compromissione di un singolo researcher non si limita alla persona: può propagarsi a framework di sicurezza ampiamente utilizzati come Nuclei, a clienti di penetration test, e all'intero ecosistema di chi si affida alle loro analisi.
Il rischio è raddoppiato dalla natura stessa del lavoro di ricerca. La pressione temporale dopo la disclosure di una CVE — la cosiddetta race to PoC — crea condizioni ideali per l'esecuzione di codice non verificato. Il researcher sa teoricamente che dovrebbe ispezionare ogni dipendenza, ma nella pratica questa verifica viene spesso saltata o delegata a tool automatici che il malware è progettato a eludere.
Secondo Sekoia via BleepingComputer, circa 2.400 download di skytext sono stati registrati, con distribuzione geografica che privilegia sistemi Linux. Il numero di download non equivale al numero di infezioni effettive: il malware richiede che le condizioni di environmental key gating siano soddisfatte per attivarsi. Il dossier non specifica quanti di questi download abbiano generato compromissioni reali, né identifica vittime enterprise o clienti specifici.
Cosa fare adesso
- Ispezionare manualmente le catene di dipendenze transitive nei progetti Python, soprattutto quelle che includono pacchetti con estensioni native compilate (.so, .pyd) non documentate nelle release notes ufficiali.
- Verificare la presenza degli hash SHA-256 documentati da Sekoia per
skytext1.1.0,frint0.1.2 eslogsecnei propri ambienti di sviluppo e CI/CD. - Monitorare il traffico HTTPS con SNI
api.mapbox.comper anomalie nel pattern di comunicazione, in particolare trasferimenti verso dataset non riconducibili a operazioni di mapping legittime. - Analizzare i repository GitHub di PoC per CVE recenti prima dell'esecuzione, con attenzione all'età dell'account, alla storia dei commit e alla coerenza delle dipendenze dichiarate con quelle effettivamente installate.
La lezione oltre il singolo incidente
La campagna ChocoPoC esemplifica una mutazione strategica nel panorama delle minacce: l'arma è il meccanismo di consegna, non il malware in sé. Come hanno osservato i ricercatori di YesWeHack e Sekoia, «il malware di per sé non è una novità, ma sta cambiando il meccanismo di consegna». Il RAT Python esisteva già nella campagna di fine 2025; ciò che si è evoluto è la capacità di sfruttare le dinamiche sociali e temporali della comunità di sicurezza stessa.
L'environmental key gating rappresenta in particolare un salto di qualità nell'evasione. Non si tratta di offuscamento statico, ma di una logica condizionale che sfrutta il contesto d'esecuzione specifico della vittima designata. Questo rende inefficaci molti controlli automatizzati standard, progettati per eseguire il codice in ambienti generici. Il researcher diventa così il proprio sistema di attivazione, senza rendersene conto.
La sfida per il settore è strutturale: come si concilia la necessità di reattività nel test delle vulnerabilità con la verifica approfondita del software che si esegue? ChocoPoC non offre risposte, ma rende la domanda ineludibile.
FAQ
- Le CVE citate nei repository fake sono vulnerabilità reali?
- Le CVE elencate (tra cui CVE-2026-10520, CVE-2026-50751, CVE-2026-48908 e altre) sono vulnerabilità realmente esistite, ma i repository GitHub non ne contengono exploit funzionanti. Le CVE sono utilizzate come esca semantica per attirare i researcher; il codice apparente serve solo a installare la catena di dipendenze malevola.
- Mapbox è compromessa o cosciente dell'abuso?
- Non emerge alcuna compromissione di Mapbox né collaborazione con gli attaccanti. Il servizio viene abusato attraverso account creati con credenziali leak, sfruttando la legittimità del traffico HTTPS verso
api.mapbox.comper il domain-fronting. La fonte non documenta azioni correttive specifiche da parte del provider. - Chi è esposto oltre ai researcher individuali?
- Il dossier non specifica vittime enterprise o clienti identificati. Tuttavia, l'angolo di lettura suggerisce che la compromissione di un researcher può propagarsi a framework di sicurezza, strumenti di test e dati client. Il perimetro di impatto effettivo non è quantificato nelle fonti disponibili.
Fonti
- https://thehackernews.com/2026/07/new-chocopoc-rat-targets-vulnerability.html
- https://www.bleepingcomputer.com/news/security/new-chocopoc-malware-targets-researchers-via-trojanized-poc-exploits/
- https://www.helpnetsecurity.com/2026/07/02/shared-storage-ransomware-detection-research/
- https://cyberpress.org/chocopoc-targets-python-dependencies/
- https://thehackernews.com/2024/12/390000-wordpress-credentials-stolen-via.html
- https://thehackernews.com/2023/09/north-korean-hackers-exploit-zero-day.html
- https://thehackernews.com/2025/12/threatsday-bulletin-stealth-loaders-ai.html
- https://thehackernews.uk/ai-vuln-protection-d
Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.