Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
apache_audit_cve-2026-23918 — Python-Toolkit zur Überprüfung des Apache HTTP Servers auf CVE-2026-23918 (HTTP/2 Double-Free RCE) und 4 zugehörige CVEs. Passiver Scanner mit ALPN-Verifizierung + schreibgeschützter lokaler Auditor. Keine Exploits. | Kitploit
Tools/GitHubGitHub/sibersan/apache_audit_cve-2026-23918
DefensivwerkzeugeSchwachstellenscannerKonfigurationsprüfungWebsicherheitNetzwerksicherheitIncident Response
GitHubsibersan/apache_audit_cve-2026-23918

apache_audit_cve-2026-23918

Python-Toolkit zur Überprüfung des Apache HTTP Servers auf CVE-2026-23918 (HTTP/2 Double-Free RCE) und 4 zugehörige CVEs. Passiver Scanner mit ALPN-Verifizierung + schreibgeschützter lokaler Auditor. Keine Exploits.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1vor 3 MonatenNoch nicht geprüft

cve-2026-23918

Defensive Audit-Tools für CVE-2026-23918 (Apache HTTPD HTTP/2 Double-Free RCE) und vier verwandte CVEs, die im Sicherheitshinweis der Apache Software Foundation vom 4. Mai 2026 offengelegt wurden.

CVESchweregradKomponenteAuswirkungBetroffen
CVE-2026-23918Hoch (CVSS 8.8)HTTP/2Double-Free / RCEnur 2.4.66
CVE-2026-24072Mittelmod_rewrite (ap_expr)Privilegieneskalation≤ 2.4.66
CVE-2026-28780Niedrigmod_proxy_ajpHeap-Pufferüberlauf≤ 2.4.66
CVE-2026-29168Niedrigmod_md (OCSP)Ressourcenerschöpfung2.4.30 – 2.4.66
CVE-2026-29169Niedrigmod_dav_lockNULL-Ptr-Dereferenzierung / DoS≤ 2.4.66

Alle Probleme sind in Apache HTTP Server 2.4.67 behoben.


⚠️ Autorisierung & Umfang

Diese Werkzeuge sind nur für den Einsatz gegen Systeme bestimmt, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Nicht autorisiertes Scannen kann in Ihrem Rechtsraum illegal sein.

Das Toolkit ist defensiv ausgelegt:

  • Keine Schwachstellen-Payloads, keine Exploit-Versuche, keine intrusiven Sondierungen.
  • Der passive Scanner liest nur den standardmäßigen Server: HTTP-Header und verwendet standardmäßiges TLS ALPN — denselben Mechanismus, den jeder moderne Browser zur Aushandlung von HTTP/2 verwendet.
  • Der lokale Prüfer ist schreibgeschützt; es wird keine Datei oder Konfiguration geändert.

Inhalt

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

Voraussetzungen

  • Python 3.6+ — funktioniert mit dem standardmäßigen python3 von Ubuntu 18.04 und jeder späteren Version.
  • Nur Standardbibliothek — keine externen Abhängigkeiten.

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. Passive Audit — apache_passive_audit.py

Liest den HTTP-Server:-Header, um die Apache-Version zu erkennen, und gleicht sie mit der CVE-Tabelle ab. Zusätzlich führt es für HTTPS-Ziele eine standardmäßige TLS-ALPN-Aushandlung durch, um festzustellen, ob HTTP/2 exponiert ist — dies ist die wichtigste Vorbedingung für die Ausnutzbarkeit von CVE-2026-23918. Es werden keine Exploit-Payloads gesendet.

HTTP/2-Überprüfung (ALPN)

Das Skript bietet h2 und http/1.1 in der ALPN-Erweiterung des TLS-Handshakes (RFC 7301) an. Die Wahl des Servers ist die standardmäßige, eindeutige Antwort auf die Frage "Ist HTTP/2 aktiviert?" — verwendet von jedem modernen Browser und curl. Es löst weder die Schwachstelle noch ein ungewöhnliches Verhalten aus.

Das Risikourteil spiegelt dies wider:

  • Version 2.4.66 + HTTP/2 via ALPN bestätigt → VULNERABLE (RCE-Vektor offen)
  • Version 2.4.66 + HTTP/2 nicht ausgehandelt → AT_RISK (noch nicht gepatcht; andere niedrige/mittlere CVEs gelten, aber der kritische RCE-Vektor ist geschlossen)
  • ALPN-Test konnte nicht durchgeführt werden → konservativ; als exponiert annehmen
  • Version ≥ 2.4.67 → SAFE

Verwendung

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

# Mehrere Ziele
python3 apache_passive_audit.py -t https://a.example.com -t https://b.example.com

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

# CI / protokollfreundlich (keine Farben)
python3 apache_passive_audit.py -f targets.txt --no-color

targets.txt-Format (ein Ziel pro Zeile, # für Kommentare):

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

Optionen

Exit-Codes (CI/CD-freundlich)

CodeBedeutung
0Alle Ziele sicher
1Mindestens ein Ziel UNKNOWN oder ERROR
2Mindestens ein Ziel VULNERABLE oder

Risikostufen

Einschränkungen

  • Server mit ServerTokens Prod oder Minimal verstecken die Version — das Skript gibt ehrlich UNKNOWN zurück. Verwenden Sie die lokale Prüfung zur Bestätigung.
  • Eine Apache-Instanz hinter einem Reverse-Proxy (Cloudflare, F5, nginx, etc.) legt ihre Version möglicherweise nicht an der Grenze offen.
  • Die ALPN-HTTP/2-Erkennung ist nur für HTTPS-Ziele sinnvoll. HTTP/2 im Klartext (h2c) ist in der Praxis selten und wird nicht getestet.

2. Local Audit — apache_local_audit.py

Wird auf dem Zielhost (oder über SSH) ausgeführt und überprüft die Apache-Binärdatei, Version, geladene Module und HTTP/2-Konfiguration. Es bewertet auch Ausnutzbarkeitsvorbedingungen: z.B. wenn die Version 2.4.66 ist, aber HTTP/2 deaktiviert ist, wird das Risiko für CVE-2026-23918 entsprechend herabgestuft.

Verwendung

root@kitploit:~
sudo python3 apache_local_audit.py

# JSON-Bericht (für zentrales Inventar)
sudo python3 apache_local_audit.py --json /var/log/apache_audit_$(hostname).json

# Eigener Binärpfad
sudo python3 apache_local_audit.py --binary /opt/apache/bin/httpd

Erkennungsfähigkeiten

  • httpd -v / apache2 -v — Version
  • httpd -V — Build-Informationen, HTTPD_ROOT, SERVER_CONFIG_FILE
  • apache2ctl -M oder httpd -M — geladene Module
  • dpkg-query / rpm -q — Paketversion
  • Hauptkonfiguration plus alle über Include/IncludeOptional eingebundenen Dateien (einschließlich Debian's sites-enabled/, mods-enabled/) → Protocols-Direktive (h2 / h2c / http/1.1)

Optionen

FlagBeschreibung
--binaryApache-Binärpfad (überschreibt automatische Erkennung)
--jsonJSON-Berichtsausgabe
--no-colorFarbige Ausgabe deaktivieren

Exit-Codes

CodeBedeutung
0SAFE
1PATCH_NEEDED oder UNKNOWN
2VULNERABLE oder AT_RISK

Risikostufen

Berechtigungen

sudo/root wird für vollständige Konfigurationslesevorgänge empfohlen. Ohne sie sind möglicherweise einige Dateien in sites-enabled/, mods-enabled/ oder /etc/httpd/conf.d/ nicht lesbar.


Ausführen über ein Inventar

Um die lokale Prüfung auf mehreren Hosts auszuführen und Berichte zentral zu sammeln, ein Ansible-Ad-hoc-Beispiel:

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"

Gesammelte JSON-Dateien können mit jq oder einem kleinen Python-Skript zusammengeführt werden.


Empfohlene Gegenmaßnahmen

Für CVE-2026-23918 (bis zum Patch):

  1. Apache HTTP Server auf 2.4.67 oder höher aktualisieren — die einzige dauerhafte Lösung.
  2. Als Übergangsmaßnahme HTTP/2 deaktivieren: Entfernen Sie h2 und h2c aus der Protocols-Direktive in Ihrer Konfiguration, oder sudo a2dismod http2 unter Debian/Ubuntu, und laden Sie den Dienst neu.
  3. Entladen Sie mod_dav_lock, falls nicht in Verwendung (CVE-2026-29169).
  4. Überprüfen Sie Benutzer/virtuelle Hosts mit Schreibzugriff auf .htaccess (CVE-2026-24072).

Offizieller Hinweis: https://httpd.apache.org/security/vulnerabilities_24.html


Mitwirken

Pull-Requests sind willkommen. Beim Hinzufügen einer neuen CVE bitte:

  • Fügen Sie einen Eintrag zu CVE_TABLE mit dem betroffenen Versionsbereich und match-Lambda hinzu.
  • Definieren Sie für das lokale Skript das entsprechende needs-Feld für Vorbedingungsprüfungen (geladenes Modul, aktiviertes Protokoll usw.).
  • Aktualisieren Sie die README-Tabelle.
  • Behalten Sie Python 3.6-Kompatibilität bei: vermeiden Sie f-Strings, from __future__ import annotations, PEP 585-Generika (list[int]), subprocess.run(capture_output=True) und @dataclass.

Betreuer

SiberSAN

Lizenz

MIT © 2026 SiberSAN

Haftungsausschluss

Diese Software wird "wie besehen" bereitgestellt, ohne jegliche Gewährleistung. Vor dem Produktiveinsatz in einer Testumgebung validieren. Der Benutzer übernimmt die gesamte rechtliche Verantwortung für jegliche Nutzung gegen nicht autorisierte Systeme.

Tool herunterladen
FlagBeschreibung
-t, --targetEinzelziel (kann wiederholt werden)
-f, --fileZieldatei
-o, --csvCSV-Berichtsausgabe
--jsonJSON-Berichtsausgabe
--timeoutAnfrage-Timeout in Sekunden (Standard 10)
-w, --workersParallele Arbeitsthreads (Standard 10)
--no-colorFarbige Ausgabe deaktivieren
AT_RISK
StufeBedeutung
VULNERABLEVersion entspricht einem CVE-Bereich und die Vorbedingung ist erfüllt (z.B. HTTP/2 aktiviert)
AT_RISKNicht gepatchte Version, aber die kritische Vorbedingung ist NICHT erfüllt; andere CVEs gelten weiterhin
SAFEVersion ≥ 2.4.67
UNKNOWNBanner versteckt (ServerTokens Prod) oder durch Reverse-Proxy/WAF maskiert — mit dem lokalen Prüfskript überprüfen
NOT_APACHENicht Apache (nginx, IIS, etc.)
ERRORVerbindungsfehler
StufeBedeutung
VULNERABLENicht gepatchte Version + Vorbedingungen für kritische CVEs erfüllt (z.B. HTTP/2 aktiviert)
AT_RISKNicht gepatchte Version + mindestens eine CVE-Vorbedingung erfüllt
PATCH_NEEDEDNicht gepatchte Version, aber kein relevantes Modul/Protokoll aktiviert — trotzdem patchen
SAFEVersion ≥ 2.4.67
UNKNOWNVersion konnte nicht erkannt werden