Découverte passive à l'échelle d'Internet + assistant de divulgation responsable pour CVE-2026-74580 (bug de cache de métadonnées vhost sous Linux) — interroge les données de scan existantes (Sonar/Shodan/Censys), trie l'exposition et rédige (sans jamais envoyer automatiquement) des notifications aux propriétaires.
Un assistant de vérification de périmètre et d'aide à la divulgation responsable pour
CVE-2026-74580 (« Vghost ») — un véritable bug du cache de métadonnées vhost
du noyau Linux (fiche CVE,
entrée OSV) qui permet une
élévation de privilèges locale / évasion de VM sur les hôtes vhost/hyperviseur exposés.
Cas d'usage principal : vérifier votre propre périmètre. Fournissez vos propres
plages d'IP, CIDR ou domaines (import_list.py) — internes ou externes — et
triez-les pour détecter une exposition liée à vhost (ports de gestion
libvirt/Proxmox/QEMU), puis obtenez des notes de remédiation pour votre propre
outil de suivi (run_pipeline.py --self, voir « Vérification de votre propre périmètre » ci-dessous). Pas
de découverte automatique, pas de recherche massive de contacts — vous possédez déjà l'hôte.
Capacité secondaire : découverte de tiers via des données de scan publiques. Ce projet ne scanne pas lui-même l'internet — il peut optionnellement interroger des jeux de données/API qui ont déjà effectué le scan (Rapid7 Open Data / Sonar, Shodan, Censys) pour trouver d'autres hôtes exposés, puis vous aider à rédiger des avis de divulgation à leurs propriétaires. À savoir avant d'y investir du temps : il n'y a pas de prime pour cela (les CSIRT ne paient pas, et les signalements de type « CVE connue, instance non corrigée » sont rarement éligibles à une prime — voir « Impact » ci-dessous) — c'est un travail de notification bénévole et citoyen, et l'usage réel principal de ce dépôt est le cas de vérification de périmètre ci-dessus, pas celui-ci.
CVE-2026-74580 est un bug au niveau du noyau, local, et non orienté web/réseau — plusieurs conséquences en découlent, importantes pour le triage :
Applicable uniquement si toutes ces conditions sont réunies :
vhost-net/vhost-scsi via
QEMU/KVM, généralement à travers libvirt ou Proxmox). Un hôte bare-metal sans
VM, ou des VM sur du virtio simple sans déport vhost, n'est pas exposé à
ce bug quel que soit le niveau de correctif.Le véritable facteur de gravité est qui dispose déjà (ou peut obtenir) d'une exécution de code — et non si l'hôte est exposé à internet. L'exposition internet n'affecte que la facilité avec laquelle un attaquant extérieur trouve la cible ou atteint le point d'ancrage initial à distance ; cela ne change rien au fait que le bug soit exploitable une fois ce point d'ancrage obtenu. Une infrastructure privée, interne uniquement, n'est pas intrinsèquement moins risquée :
Les plus critiques, indépendamment de l'exposition à Internet :
Là où l'exposition à Internet compte réellement (un facteur secondaire, pas le principal) :
merge_and_triage.py recherche. Un port exposé ne prouve rien en
lui-même, cependant -- il ne compte que lorsqu'un élément contrôlé par
l'attaquant peut s'exécuter localement, ce que les données de scan passif
ne peuvent pas montrer (voir « Pourquoi passif uniquement » ci-dessous
pour savoir pourquoi ce dépôt n'essaie pas de le confirmer sur des hôtes
qui ne vous appartiennent pas).Réellement de gravité moindre :
Un WAF aide-t-il ? Pas directement contre ce bug -- un WAF inspecte le trafic HTTP(S), et ce bug réside dans le chemin du cache de métadonnées vhost du noyau, pas dans l'analyse des requêtes. Il n'est simplement pas dans le chemin d'exposition de la vulnérabilité elle-même.
Là où un WAF compte réellement, c'est une étape plus tôt : la chaîne la plus courante dans le monde réel est RCE d'application web → exécution de code dans l'invité → exploitation vhost → évasion de l'hôte → mouvement latéral vers tous les autres tenants. Un WAF (ou d'autres contrôles de sécurité web) peut bloquer la RCE de l'application web qui fournit à un attaquant son point d'ancrage initial, ce qui l'empêche d'atteindre ne serait-ce que le prérequis de ce bug. Donc : sans importance pour le bug vhost lui-même, mais pertinent pour l'un des chemins les plus courants vers son prérequis.