Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/sibersan/apache_audit_cve-2026-23918
Strumenti DifensiviScanner di VulnerabilitàAudit di ConfigurazioneSicurezza WebSicurezza di ReteRisposta agli Incidenti
GitHubsibersan/apache_audit_cve-2026-23918

apache_audit_cve-2026-23918

Toolkit Python per auditare Apache HTTP Server contro CVE-2026-23918 (double-free RCE in HTTP/2) e altri 4 CVE correlati. Scanner passivo con verifica ALPN + auditor locale in sola lettura. Nessun exploit.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
1124 mesi faNon ancora revisionato
Condividi

cve-2026-23918

Strumenti di audit difensivo per CVE-2026-23918 (Apache HTTPD HTTP/2 double-free RCE) e quattro CVE correlate divulgate nell'avviso di sicurezza del 4 maggio 2026 della Apache Software Foundation.

CVEGravitàComponenteImpattoVersioni affette
CVE-2026-23918Alta (CVSS 8.8)HTTP/2Double Free / RCESolo 2.4.66
CVE-2026-24072Mediamod_rewrite (ap_expr)Escalation di privilegi≤ 2.4.66
CVE-2026-28780Bassamod_proxy_ajpHeap Buffer Overflow≤ 2.4.66
CVE-2026-29168Bassamod_md (OCSP)Esaurimento risorse2.4.30 – 2.4.66
CVE-2026-29169Bassamod_dav_lockNULL Ptr Deref / DoS≤ 2.4.66

Tutti i problemi sono risolti in Apache HTTP Server 2.4.67.


⚠️ Autorizzazione e ambito

Questi strumenti sono pensati per essere usati solo contro sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta. La scansione non autorizzata potrebbe essere illegale nella tua giurisdizione.

La toolkit è difensiva per progettazione:

  • Nessun payload di vulnerabilità, nessun tentativo di exploit, nessuna sonda intrusiva.
  • Lo scanner passivo legge solo l'intestazione HTTP Server: standard e utilizza la normale ALPN TLS — lo stesso meccanismo usato da ogni browser moderno per negoziare HTTP/2.
  • L'auditor locale è in sola lettura; nessun file o configurazione viene modificato.

Contenuti

.
├── apache_passive_audit.py    # Audit esterno degli asset (banner-grab + ALPN)
├── apache_local_audit.py      # Audit locale su host / via SSH
├── LICENSE                    # MIT
├── .gitignore
└── README.md

Requisiti

  • Python 3.6+ — funziona con il python3 predefinito di Ubuntu 18.04 e tutte le versioni successive.
  • Solo libreria standard — nessuna dipendenza esterna.

Installazione

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

Legge l'intestazione HTTP Server: per rilevare la versione di Apache e la confronta con la tabella CVE. Inoltre, per target HTTPS, esegue una negoziazione ALPN TLS standard per determinare se HTTP/2 è esposto — questa è la precondizione chiave affinché CVE-2026-23918 sia sfruttabile. Nessun payload di exploit viene inviato.

Verifica HTTP/2 (ALPN)

Lo script offre h2 e http/1.1 nell'estensione ALPN dell'handshake TLS (RFC 7301). La scelta del server è la risposta standard e inequivocabile alla domanda "HTTP/2 è abilitato?" — usata da ogni browser moderno e curl. Non attiva la vulnerabilità né alcun comportamento anomalo.

Il verdetto di rischio riflette questo:

  • Versione 2.4.66 + HTTP/2 confermato tramite ALPN → VULNERABILE (vettore RCE aperto)
  • Versione 2.4.66 + HTTP/2 non negoziato → A RISCHIO (ancora non patchato; altre CVE basse/medie si applicano, ma il vettore RCE ad alta gravità è chiuso)
  • Test ALPN non eseguito → conservativo; si presuppone esposto
  • Versione ≥ 2.4.67 → SICURO

Utilizzo

# Singolo target
python3 apache_passive_audit.py -t https://web.example.com

# Più target
python3 apache_passive_audit.py -t https://a.example.com -t https://b.example.com

# File di target, parallelo, output CSV + JSON
python3 apache_passive_audit.py -f targets.txt -w 20 -o report.csv --json report.json

# CI / adatto ai log (senza colori)
python3 apache_passive_audit.py -f targets.txt --no-color

Formato targets.txt (un target per riga, # per commenti):

https://www.example.com
intranet.example.local:8443
# vecchio server di staging
http://10.0.5.12

Opzioni

FlagDescrizione
-t, --targetSingolo target (può essere ripetuto)
-f, --fileFile con lista di target
-o, --csvOutput report CSV
--jsonOutput report JSON
--timeoutTimeout richiesta in secondi (default 10)
-w, --workersThread worker paralleli (default 10)
--no-colorDisabilita output colorato

Codici di uscita (adatti a CI/CD)

CodiceSignificato
0Tutti i target sicuri
1Almeno un target SCONOSCIUTO o ERRORE
2Almeno un target VULNERABILE o A RISCHIO

Livelli di rischio

LivelloSignificato
VULNERABILELa versione corrisponde a un intervallo CVE dell'avviso E la sua precondizione è soddisfatta (es. HTTP/2 abilitato)
A RISCHIOVersione non patchata ma la precondizione ad alta gravità NON è soddisfatta; altre CVE si applicano comunque
SICUROVersione ≥ 2.4.67
SCONOSCIUTOBanner nascosto (ServerTokens Prod) o mascherato da reverse proxy/WAF — verifica con lo script di audit locale
NON_APACHENon Apache (nginx, IIS, ecc.)
ERROREErrore di connessione

Limitazioni

  • Server con ServerTokens Prod o Minimal nascondono la versione — lo script restituisce onestamente SCONOSCIUTO. Usa l'audit locale per confermare.
  • Un'istanza Apache dietro un reverse proxy (Cloudflare, F5, nginx, ecc.) potrebbe non esporre la propria versione al perimetro.
  • Il rilevamento ALPN HTTP/2 è significativo solo per target HTTPS. HTTP/2 in chiaro (h2c) è raro nella pratica e non viene testato.

2. Audit locale — apache_local_audit.py

Viene eseguito sul host target (o tramite SSH) e ispeziona il binario Apache, la versione, i moduli caricati e la configurazione HTTP/2. Valuta anche le precondizioni di sfruttabilità: ad esempio, se la versione è 2.4.66 ma HTTP/2 è disabilitato, il rischio per CVE-2026-23918 viene declassato di conseguenza.

Utilizzo

sudo python3 apache_local_audit.py

# Report JSON (per inventario centralizzato)
sudo python3 apache_local_audit.py --json /var/log/apache_audit_$(hostname).json

# Percorso binario personalizzato
sudo python3 apache_local_audit.py --binary /opt/apache/bin/httpd

Capacità di rilevamento

  • httpd -v / apache2 -v — versione
  • httpd -V — informazioni di build, HTTPD_ROOT, SERVER_CONFIG_FILE
  • apache2ctl -M o httpd -M — moduli caricati
  • dpkg-query / rpm -q — versione del pacchetto
  • Configurazione principale più tutti i file inclusi tramite Include/IncludeOptional (inclusi sites-enabled/, mods-enabled/ di Debian) → direttiva Protocols (h2 / h2c / http/1.1)

Opzioni

FlagDescrizione
--binaryPercorso del binario Apache (sovrascrive il rilevamento automatico)
--jsonOutput report JSON
--no-colorDisabilita output colorato

Codici di uscita

CodiceSignificato
0SICURO
1PATCH NECESSARIO o SCONOSCIUTO
2VULNERABILE o A RISCHIO

Livelli di rischio

LivelloSignificato
VULNERABILEVersione non patchata + precondizioni CVE ad alta gravità soddisfatte (es. HTTP/2 abilitato)
A RISCHIOVersione non patchata + almeno una precondizione CVE soddisfatta
PATCH NECESSARIOVersione non patchata ma nessun modulo/protocollo rilevante abilitato — patchare comunque
SICUROVersione ≥ 2.4.67
SCONOSCIUTOVersione non rilevabile

Privilegi

sudo/root è raccomandato per la lettura completa della configurazione. Senza di esso, alcuni file in sites-enabled/, mods-enabled/ o /etc/httpd/conf.d/ potrebbero risultare illeggibili.


Esecuzione su un inventario

Per eseguire l'audit locale su più host e raccogliere i report centralmente, un esempio ad-hoc con Ansible:

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"

I file JSON raccolti possono essere uniti con jq o un piccolo script Python.


Mitigazioni raccomandate

Per CVE-2026-23918 (fino alla patch):

Scarica lo strumento