Il lavoro offensivo che alimenta tutto il resto: CVE, advisory e bug bounty su programmi enterprise e progetti open source, con un focus crescente sulla sicurezza dei sistemi AI/LLM.
OS Command Injection (CWE-78) nella branch v2-dev di im3x/Scriptables: input non sanitizzato passato a una shell, con esecuzione di comandi arbitrari sul server. Dalla proof of concept alla notifica al maintainer e all'assegnazione MITRE.
Zip Slip / Path Traversal (CWE-22) in codeskyblue/gohttpserver v1.3.0: un archivio malevolo estrae file al di fuori della directory prevista, permettendo la scrittura su path arbitrari dell'host.
Argument Injection (CWE-88) in Tzahi12345/YoutubeDL-Material: i parametri di download (customArgs) su POST /api/downloadFile finiscono non filtrati tra gli argomenti di yt-dlp, dove --exec esegue comandi arbitrari sul server. Endpoint non autenticato.
Deserializzazione insicura (CWE-502) in LiangYang666/ChatGPT-Web: l'endpoint POST /uploadUserDictFile passa un file .pkl caricato dall'utente a pickle.load, con esecuzione di codice Python arbitrario. Configurazione di default con password vuote.
Deserializzazione insicura (CWE-502) in ltzheng/agent-studio (progetto del paper ICLR 2025): POST /task/eval ricostruisce oggetti Python arbitrari via jsonpickle.decode, con RCE non autenticato. Il server ascolta su 0.0.0.0 di default.
OS Command Injection (CWE-78) in develon2015/Youtube-dl-REST: il parametro recode su GET /y2b/download viene interpolato in un comando shell passato a child_process.execSync senza sanitizzazione. Non autenticato.
OS Command Injection (CWE-78) in kudlav/videoeditor: il nome di un file caricato via POST /api/project/{id}/file viene interpolato non quotato in un comando ffmpeg eseguito con child_process.exec. Catena non autenticata (crea progetto poi upload).
Deserializzazione insicura (CWE-502) in maxpumperla/elephas (<=3.2.0): il parameter server passa il corpo di POST /update a pickle.loads, eseguendo codice arbitrario nel driver Spark. Non autenticato.
Server-Side Request Forgery (CWE-918) in Tiendil/feeds.fun (1.28.0): gli endpoint di feed-discovery recuperano un URL fornito dall'utente con follow-redirects e senza filtro su IP interni o metadata cloud, esponendo furto di credenziali IAM e ricognizione della rete interna.
Deserializzazione insicura (CWE-502) in antmicro/protoplaster (1.0): POST /api/v1/exec passa un pickle Python creato ad arte a pickle.loads prima di ogni validazione, con esecuzione di codice remoto. Server waitress su 0.0.0.0, nessuna autenticazione.
Path Traversal (CWE-22) in Tanq16/local-content-share (v37): gli handler /download, /raw, /edit, /delete e /rename accettano traversal %2f non normalizzato, permettendo lettura, scrittura e cancellazione di file arbitrari sull'host. Non autenticato.
Deserializzazione insicura (CWE-502) in stepfun-ai/Step-Video-T2V: gli endpoint /vae-api e /caption-api passano il corpo della richiesta a pickle.loads, con esecuzione di codice nel processo di inference. In ascolto su 0.0.0.0:8080 senza autenticazione.
Path Traversal (CWE-22) in wizsk/goshare (v4.4): nella configurazione senza password di default, GET /zip con traversal %2f consente la lettura di file arbitrari fuori dalla directory condivisa (es. /etc/passwd).
Path Traversal (CWE-22, CVSS 9.8) in GodoOS di phpk: validateFilePath() controlla soltanto che il path non sia vuoto, lasciando 14+ endpoint non autenticati liberi di leggere, scrivere e cancellare file arbitrari sull'host. Advisory in coordinated disclosure, CVE in attesa.
Responsible disclosure ad Anthropic di un bypass dei guardrail di sicurezza di Claude Code. Segnalazione gestita in canale privato con il vendor: i dettagli tecnici restano riservati.
Deserializzazione insicura (CWE-502) in Antmicro protoplaster 1.0 (commit d396d8cc): esecuzione di codice remoto attraverso i componenti execution.py, consts.py e protoplaster.py. L'endpoint POST /api/v1/exec passa dati non fidati a pickle.loads su un server waitress in ascolto su 0.0.0.0 senza autenticazione.
Su una piattaforma SaaS di customer support (engagement sotto NDA): indirect prompt injection (RAG poisoning) sull'AI agent. Un articolo della knowledge base avvelenato induce l'AI a generare risposte di phishing - richiesta della password e redirect a un URL malevolo - inviate dal canale ufficiale con DKIM/SPF/DMARC validi e senza revisione umana. Catena dimostrata end-to-end con prova .eml (OWASP LLM01).
Endpoint admin non autenticati sulla data-plane port di Pyroscope abilitano accesso cross-tenant ai dati (High, 8.6).
Header di autenticazione custom (X-API-Key, X-Auth-Token) inoltrati al target di un redirect cross-domain invece di essere rimossi: leak di credenziali nel modulo follow-redirects, la dipendenza di redirect di axios. Stessa classe confermata in altre cinque librerie HTTP; fix rilasciato nella 1.16.0.
Fix incompleto di una path traversal nel restore dei delta backup di pghoard (Aiven): scrittura di file arbitrari al di fuori della directory pgdata.
Server-Side Request Forgery (CWE-918) in Tiendil feeds.fun release-1.28.0: gli endpoint di feed-discovery POST /spa/api/private/discover-feeds e /add-feed permettono a un attaccante di ottenere informazioni sensibili (metadata cloud, credenziali IAM) e raggiungere risorse interne, recuperando URL forniti dall'utente lato server senza filtro su IP interni.
Hardcoded Session Secret (CWE-798) in codeskyblue/gohttpserver v1.3.0: chiave di sessione statica nel sorgente, che apre alla falsificazione dei token. Riscalata a 7.5 in triage (il gate agisce sulla scrittura, non sulla lettura).
CNAME pendenti su railing.meraki.com e heroku.meraki.com puntano a un'applicazione Heroku registrata ma inattiva: rischio di subdomain takeover.
SSRF nella validazione degli URL webhook: nessun filtro sugli IP interni, con disclosure completa del response body. Risolto dal vendor.
Directory Traversal (CWE-22) in Tanq16 local-content-share (tutte le release fino al tag v37): gli handler main.go /download, /raw, /edit, /delete e /rename accettano traversal non normalizzato, consentendo lettura, scrittura e cancellazione di file arbitrari sull'host senza autenticazione.
Per un provider SaaS in ambito governativo FedRAMP (engagement sotto NDA): credenziali del pool AWS Cognito esposte in un config file pubblico, con user enumeration non autenticata (PreventUserExistenceErrors disabilitato) e credential stuffing senza rate limit. Catena completa dimostrata, dalla ricognizione alle condizioni per l'account takeover.
Header sensibili (Authorization, Cookie) non rimossi quando il client segue un redirect verso un'altra origine: leak di credenziali cross-origin. Confermato nel fetch globale di Node.js, dove undici è incorporato.
Stessa classe nel client npm node-fetch: gli header di autenticazione sopravvivono al redirect verso un host diverso, esponendoli all'origine di destinazione.
Nel client Go resty: gli header impostati dall'utente non vengono ripuliti sul redirect cross-origin, con leak di token e cookie verso la nuova destinazione.
Directory Traversal (CWE-22) in wizsk goshare fino al tag v4.4 (commit 37a755d8): l'endpoint HTTP /zip consente il traversal del path e la lettura di file arbitrari fuori dalla directory condivisa nella configurazione senza password di default.
Nel client Go req: stessa classe di leak: gli header sensibili vengono inoltrati a una nuova origine al seguire un redirect, senza sanitizzazione.
Nel client Go gorequest: header di autenticazione inoltrati a una nuova origine dopo il redirect, chiudendo la serie di sei librerie HTTP colpite dalla stessa classe.
Credenziali preservate su un redirect HTTP→HTTPS verso lo stesso host quando cambia solo la porta: il controllo same-host guardava host e schema, non la porta. Segnalato il 20 marzo, risolto in sei giorni (PR #12275); chiuso senza CVE perché il codice viveva solo sulla linea di sviluppo v4, mai in una release.
Deserializzazione insicura (CWE-502) in stepfun-ai Step-Video-T2V (commit 675e08c0): esecuzione di codice remoto attraverso le risorse flask-restful VAEapi e Captionapi di api/call_remote_server.py, che passano il corpo della richiesta a pickle.loads su 0.0.0.0:8080 senza autenticazione.
Hashing EIP-712 errato dei tipi dinamici in GuardedMulticaller2: la struttura non viene serializzata secondo lo standard, con rischio sulla validazione delle firme.
Hijacking cross-user dei consumer Kafka via enumerazione dell'identificatore nel REST proxy, con esfiltrazione non autorizzata di messaggi.
Bypass di autorizzazione nei permessi delle cartelle annidate di Grafana (Medium, 6.5).
Disclosure non autenticata della versione applicativa via endpoint /version, utile a un attaccante per il fingerprinting.
Isolamento di rete del sandbox SDK aggirabile: accesso ai metriche Prometheus dell'host attraverso la Docker bridge.
SSRF e scanning della rete interna tramite la funzione SECURITY DEFINER aiven_extras.pg_create_subscription().
Una selezione dei risultati più rilevanti, da oltre 40 programmi e progetti tra Bugcrowd, Intigriti, HackerOne, Huntr e GitHub.