Solo qualche giorno fa è apparso sulla mailing list Full Disclosure un nuovo exploit per Apache che sfrutta una vulnerabilità del web server che non è capace di gestire correttamente le richieste di tipo Range Header che presentano valori non conformi. L’exploit causa l’esaurimento della memoria del web server oggetto dell’attacco portando il sistema velocemente al collasso. Tutt’altro che zero-day, questo bug con relativa tecnica d’attacco pare sia già stato segnalato tempo addietro da un ricercatore di sicurezza nel lontano 2007 ma sembra sia tornato in auge solo adesso dopo la creazione dello script perl che sfrutta la debolezza in oggetto.
L’exploit apachekiller.pl sfrutta in modo semplice la vulnerabilità del web server inviando molteplici richieste HTTP come quella che segue :
HEAD / HTTP/1.1 Host: www.example.com Range:bytes=0-1,0-2,0-3,0-4,0-5,0-6,0-7,0-8,0-10 (ecc...) Accept-Encoding: gzip
Le versioni vulnerabili di Apache non sono in grado di gestire richieste con valori di Range Header non leciti. Unendo questa vulnerabilità con le richieste di compressione gzip il web server può essere indotto ad un tentativo di compressione di ogni singola richiesta, generando un carico di lavoro spaventoso ed esaurendo in brevissimo tempo la memoria di sistema. L’exploit è stato testato anche dal nostro staff su numerose installazioni di Apache e la percentuale di vulnerabilità è risultata essere nella media. Il team di Apache è al lavoro per il rilascio di una patch che molto probabilmente non sarà pronta in tempi brevi ma ad ogni modo esistono modalità di mitigazione della vulnerabilità molto valide nell’attesa della classica patch di sicurezza.
