Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
apache_audit_cve-2026-23918 — Kit Python pour auditer le serveur Apache HTTP contre CVE-2026-23918 (RCE double-free HTTP/2) et 4 CVE associées. Scanner passif avec vérification ALPN + auditeur local en lecture seule. Aucun exploit. | Kitploit
Outils/GitHubGitHub/sibersan/apache_audit_cve-2026-23918
Outils DéfensifsScanners de VulnérabilitésAudit de ConfigurationSécurité WebSécurité RéseauRéponse aux Incidents
GitHubsibersan/apache_audit_cve-2026-23918

apache_audit_cve-2026-23918

Kit Python pour auditer le serveur Apache HTTP contre CVE-2026-23918 (RCE double-free HTTP/2) et 4 CVE associées. Scanner passif avec vérification ALPN + auditeur local en lecture seule. Aucun exploit.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
1il y a 3 moisPas encore vérifié

cve-2026-23918

Outils d'audit défensif pour CVE-2026-23918 (double-free RCE HTTP/2 d'Apache HTTPD) et quatre CVE associées divulguées dans l'avis de sécurité de la Apache Software Foundation du 4 mai 2026.

CVESévéritéComposantImpactVersions concernées
CVE-2026-23918Élevée (CVSS 8.8)HTTP/2Double free / RCE2.4.66 uniquement
CVE-2026-24072Modéréemod_rewrite (ap_expr)Élévation de privilèges≤ 2.4.66
CVE-2026-28780Faiblemod_proxy_ajpDépassement de tampon sur le tas≤ 2.4.66
CVE-2026-29168Faiblemod_md (OCSP)Épuisement des ressources2.4.30 – 2.4.66
CVE-2026-29169Faiblemod_dav_lockDéréférencement de pointeur NULL / DoS≤ 2.4.66

Tous les problèmes sont corrigés dans Apache HTTP Server 2.4.67.


⚠️ Autorisation et portée

Ces outils sont destinés à être utilisés uniquement contre des systèmes qui vous appartiennent ou pour lesquels vous disposez d'une autorisation écrite explicite de test. L'analyse non autorisée peut être illégale dans votre juridiction.

La boîte à outils est défensive par conception :

  • Aucun payload de vulnérabilité, aucune tentative d'exploitation, aucun sondage intrusif.
  • Le scanner passif lit uniquement l'en-tête HTTP standard Server: et utilise l'ALPN TLS standard — le même mécanisme que celui utilisé par tous les navigateurs modernes pour négocier HTTP/2.
  • L'auditeur local est en lecture seule ; aucun fichier ni aucune configuration n'est modifié.

Contenu

root@kitploit:~
.
├── apache_passive_audit.py    # External asset audit (banner-grab + ALPN)
├── apache_local_audit.py      # On-host / SSH local audit
├── LICENSE                    # MIT
├── .gitignore
└── README.md

Prérequis

  • Python 3.6+ — fonctionne avec le python3 par défaut d'Ubuntu 18.04 et toutes les versions ultérieures.
  • Bibliothèque standard uniquement — aucune dépendance externe.

Installation

root@kitploit:~
git clone https://github.com/sibersan/cve-2026-23918.git
cd cve-2026-23918
chmod +x apache_passive_audit.py apache_local_audit.py

1. Audit passif — apache_passive_audit.py

Lit l'en-tête HTTP Server: pour détecter la version d'Apache et la confronte au tableau des CVE. De plus, pour les cibles HTTPS, effectue une négociation ALPN TLS standard afin de déterminer si HTTP/2 est exposé — c'est la condition préalable essentielle pour que CVE-2026-23918 soit exploitable. Aucun payload d'exploitation n'est envoyé.

Vérification HTTP/2 (ALPN)

Le script propose h2 et http/1.1 dans l'extension ALPN de la poignée de main TLS (RFC 7301). Le choix du serveur est la réponse standard et sans ambiguïté à la question « HTTP/2 est-il activé ? » — utilisé par tous les navigateurs modernes et curl. Cela ne déclenche pas la vulnérabilité ni aucun comportement inhabituel.

Le verdict de risque reflète ceci :

  • Version 2.4.66 + HTTP/2 confirmé via ALPN → VULNERABLE (vecteur RCE ouvert)
  • Version 2.4.66 + HTTP/2 non négocié → AT_RISK (toujours non corrigé ; les autres CVE faibles/modérées s'appliquent, mais le vecteur RCE de sévérité élevée est fermé)
  • Test ALPN impossible à effectuer → conservateur ; considérer comme exposé
  • Version ≥ 2.4.67 → SAFE

Utilisation

root@kitploit:~
# Single target
python3 apache_passive_audit.py -t https://web.example.com

# Multiple targets
python3 apache_passive_audit.py -t https://a.example.com -t https://b.example.com

# Targets file, parallel, CSV + JSON output
python3 apache_passive_audit.py -f targets.txt -w 20 -o report.csv --json report.json

# CI / log-friendly (no colors)
python3 apache_passive_audit.py -f targets.txt --no-color

Format de targets.txt (une cible par ligne, # pour les commentaires) :

root@kitploit:~
https://www.example.com
intranet.example.local:8443
# old staging box
http://10.0.5.12

Options

Codes de sortie (compatibles CI/CD)

CodeSignification
0Toutes les cibles sûres
1Au moins une cible UNKNOWN ou ERROR
2Au moins une cible VULNERABLE ou

Niveaux de risque

Limites

  • Les serveurs avec ServerTokens Prod ou Minimal masquent la version — le script renvoie honnêtement UNKNOWN. Utilisez l'audit local pour confirmer.
  • Une instance Apache derrière un reverse proxy (Cloudflare, F5, nginx, etc.) peut ne pas exposer sa version en périphérie.
  • La détection HTTP/2 via ALPN n'est pertinente que pour les cibles HTTPS. Le HTTP/2 en clair (h2c) est rare en pratique et n'est pas testé.

2. Audit local — apache_local_audit.py

S'exécute sur l'hôte cible (ou via SSH) et examine le binaire Apache, la version, les modules chargés et la configuration HTTP/2. Il évalue également les conditions préalables d'exploitabilité : par ex. si la version est 2.4.66 mais que HTTP/2 est désactivé, le risque pour CVE-2026-23918 est réduit en conséquence.

Utilisation

root@kitploit:~
sudo python3 apache_local_audit.py

# JSON report (for centralized inventory)
sudo python3 apache_local_audit.py --json /var/log/apache_audit_$(hostname).json

# Custom binary path
sudo python3 apache_local_audit.py --binary /opt/apache/bin/httpd

Capacités de détection

  • httpd -v / apache2 -v — version
  • httpd -V — informations de compilation, HTTPD_ROOT, SERVER_CONFIG_FILE
  • apache2ctl -M ou httpd -M — modules chargés
  • dpkg-query / rpm -q — version du paquet
  • Configuration principale plus tous les fichiers inclus via Include/IncludeOptional (y compris sites-enabled/, mods-enabled/ de Debian) → directive Protocols (h2 / h2c / http/1.1)

Options

FlagDescription
--binaryChemin du binaire Apache (remplace la détection automatique)
--jsonSortie de rapport JSON
--no-colorDésactiver la sortie colorée

Codes de sortie

CodeSignification
0SAFE
1PATCH_NEEDED ou UNKNOWN
2VULNERABLE ou AT_RISK

Niveaux de risque

Privilèges

sudo/root est recommandé pour une lecture complète de la configuration. Sans cela, certains fichiers dans sites-enabled/, mods-enabled/ ou /etc/httpd/conf.d/ peuvent être illisibles.


Exécution sur un parc de machines

Pour exécuter l'audit local sur plusieurs hôtes et collecter les rapports de manière centralisée, un exemple de commande ad-hoc Ansible :

root@kitploit:~
ansible all -i inventory.ini -b -m script \
  -a "apache_local_audit.py --json /tmp/apache_audit.json --no-color"

ansible all -i inventory.ini -b -m fetch \
  -a "src=/tmp/apache_audit.json dest=./reports/ flat=no"

Les fichiers JSON collectés peuvent être fusionnés avec jq ou un petit script Python.


Mesures d'atténuation recommandées

Pour CVE-2026-23918 (jusqu'à la correction) :

  1. Mettez à niveau Apache HTTP Server vers 2.4.67 ou ultérieur — la seule correction permanente.
  2. À titre de mesure provisoire, désactivez HTTP/2 : retirez h2 et h2c de la directive Protocols dans votre configuration, ou exécutez sudo a2dismod http2 sur Debian/Ubuntu, puis rechargez le service.
  3. Déchargez mod_dav_lock s'il n'est pas utilisé (CVE-2026-29169).
  4. Auditez les utilisateurs / hôtes virtuels ayant un accès en écriture .htaccess (CVE-2026-24072).

Avis officiel : https://httpd.apache.org/security/vulnerabilities_24.html


Contribution

Les pull requests sont les bienvenues. Lors de l'ajout d'une nouvelle CVE, veuillez :

  • Ajoutez une entrée à CVE_TABLE avec la plage de versions concernée et la lambda match.
  • Pour le script local, définissez le champ needs approprié pour les vérifications de conditions préalables (module chargé, protocole activé, etc.).
  • Mettez à jour le tableau du README.
  • Maintenez la compatibilité Python 3.6 : évitez les f-strings, from __future__ import annotations, les génériques PEP 585 (list[int]), subprocess.run(capture_output=True) et @dataclass.

Mainteneur

SiberSAN

Licence

MIT © 2026 SiberSAN

Avertissement

Ce logiciel est fourni « tel quel », sans garantie d'aucune sorte. Validez-le dans un environnement de test avant toute utilisation en production. L'utilisateur assume l'entière responsabilité légale de toute utilisation contre des systèmes non autorisés.

Télécharger l’outil
FlagDescription
-t, --targetCible unique (peut être répété)
-f, --fileFichier de liste de cibles
-o, --csvSortie de rapport CSV
--jsonSortie de rapport JSON
--timeoutDélai d'expiration de la requête en secondes (défaut 10)
-w, --workersThreads de travail parallèles (défaut 10)
--no-colorDésactiver la sortie colorée
AT_RISK
NiveauSignification
VULNERABLELa version correspond à une plage de CVE de l'avis ET sa condition préalable est remplie (par ex. HTTP/2 activé)
AT_RISKVersion non corrigée mais la condition préalable de sévérité élevée n'est PAS remplie ; les autres CVE s'appliquent toujours
SAFEVersion ≥ 2.4.67
UNKNOWNBannière masquée (ServerTokens Prod) ou masquée par un reverse proxy/WAF — vérifier avec le script d'audit local
NOT_APACHEPas Apache (nginx, IIS, etc.)
ERRORErreur de connexion
NiveauSignification
VULNERABLEVersion non corrigée + conditions préalables de la CVE de sévérité élevée remplies (par ex. HTTP/2 activé)
AT_RISKVersion non corrigée + au moins une condition préalable de CVE remplie
PATCH_NEEDEDVersion non corrigée mais aucun module/protocole pertinent activé — corriger quand même
SAFEVersion ≥ 2.4.67
UNKNOWNVersion impossible à détecter