
Scoperta passiva su scala internet + supporto alla divulgazione responsabile per CVE-2026-74580 (bug della cache dei metadati dei vhost Linux) — interroga i dati di scansione esistenti (Sonar/Shodan/Censys), valuta l'esposizione e redige (senza mai inviare automaticamente) le notifiche ai proprietari.
Un helper per il controllo del perimetro e la divulgazione responsabile per
CVE-2026-74580 ("Vghost") — un bug reale della cache dei metadati vhost
del kernel Linux (record CVE,
voce OSV) che consente
privesc locale / VM-escape su host vhost/hypervisor esposti.
Caso d'uso principale: controllare il proprio perimetro. Fornisci i tuoi
range IP, CIDR o domini (import_list.py) — interni o esterni — e
classificali per l'esposizione adiacente a vhost (porte di gestione
libvirt/Proxmox/QEMU), quindi ottieni note di remediation per il tuo tracker
(run_pipeline.py --self, vedi "Controllare il proprio perimetro" sotto). Nessuna
auto-discovery, nessuna ricerca di contatti di massa — l'host è già tuo.
Capacità secondaria: scoperta di terze parti tramite dati di scansione pubblici. Questo progetto non scansiona Internet da solo — può opzionalmente interrogare dataset/API che hanno già effettuato la scansione (Rapid7 Open Data / Sonar, Shodan, Censys) per trovare altri host esposti, e poi aiutarti a redigere notifiche di divulgazione ai loro proprietari. Da sapere prima di investire tempo qui: non c'è alcun bounty per questo (i CSIRT non pagano, e i report del tipo "istanza non patchata con CVE noto" raramente sono idonei al bounty — vedi "Impatto" sotto) — è lavoro di notifica non retribuito da buon cittadino, e la maggior parte dell'uso reale di questo repo è il caso di controllo del perimetro qui sopra, non questo.
CVE-2026-74580 è un bug a livello di kernel, locale, non esposto a web/rete -- ne derivano alcune cose che contano per la classificazione:
Applicabile solo se valgono tutte queste condizioni:
vhost-net/vhost-scsi tramite
QEMU/KVM, tipicamente attraverso libvirt o Proxmox). Un host bare-metal senza
VM, o VM su semplice virtio senza offload vhost, non è esposto a
questo bug indipendentemente dal livello di patch.Il vero fattore determinante della gravità è chi ha già (o può ottenere) l'esecuzione di codice -- non se l'host è esposto a Internet. L'esposizione a Internet influisce solo su quanto facilmente un attaccante esterno trova il target o raggiunge il punto d'appoggio iniziale da remoto; non cambia nulla sul fatto che il bug sia sfruttabile una volta che qualcuno ha quel punto d'appoggio. Infrastruttura solo interna, privata, non è intrinsecamente a rischio inferiore:
Più critico, indipendentemente dall'esposizione a Internet:
Dove l'esposizione a Internet conta davvero (un fattore secondario, non quello primario):
merge_and_triage.py cerca. Una porta esposta non prova nulla di per
sé, però -- conta solo quando qualcosa controllato dall'attaccante può
essere eseguito localmente, cosa che i dati di scansione passiva non
possono mostrare (vedi "Perché solo passivo" qui sotto per il motivo
per cui questo repo non tenta di confermarlo su host che non possiedi).Gravità genuinamente inferiore:
Un WAF aiuta? Non direttamente contro questo bug -- un WAF ispeziona il traffico HTTP(S), e questo bug risiede nel percorso della metadata-cache di vhost del kernel, non nel parsing delle richieste. Semplicemente non è nel percorso di esposizione della vulnerabilità stessa.
Dove un WAF conta davvero è un passo prima: la catena reale più comune è RCE su app web → esecuzione di codice all'interno del guest → exploit vhost → escape dall'host → movimento laterale verso ogni altro tenant. Un WAF (o altri controlli di sicurezza web) può bloccare l'RCE dell'app web che fornisce all'attaccante il suo punto d'appoggio iniziale, il che impedisce loro di raggiungere mai il prerequisito per questo bug in primo luogo. Quindi: irrilevante per il bug vhost stesso, ma rilevante per uno dei più comuni percorsi verso il suo prerequisito.
Ciò che riduce davvero il rischio, dall'inizio alla fine: applicare la patch al kernel, disabilitare l'offload vhost dove non è necessario, non esporre le porte di gestione libvirt/Proxmox a Internet, rafforzare le app/servizi web in esecuzione all'interno dei guest (riducendo le probabilità di quell'RCE iniziale), e rafforzare l'isolamento dei tenant (seccomp, namespace) per rendere più difficile ottenere qualsiasi punto d'appoggio.