Onderzoeker Dominic Scheirlinck heeft de details bekendgemaakt van de 'httpoxy'-kwetsbaarheden, waarmee een aanvaller kan bepalen waar verzoeken van een webapplicatie naartoe worden gestuurd. Het gaat om een oud lek, dat gevolgen heeft voor PHP, Go, Python en andere talen.
Op een site legt Scheirlinck de kwetsbaarheden en de mogelijke oplossingen uit. Het komt erop neer dat een aanvaller door middel van een request header kan bepalen waar een webapplicatie verzoeken naartoe stuurt. Dit is mogelijk doordat de aanvaller gebruikmaakt van een proxy-header, die door cgi wordt geïnterpreteerd als een variabele. Deze variabele, genaamd 'HTTP_PROXY', wordt echter ook gebruikt om een proxy voor uitgaande verbindingen te configureren. De aanvaller kan dit benamingsconflict gebruiken om zelf een proxy te bepalen.
Daardoor is het bijvoorbeeld mogelijk dat hij daarbij gebruikmaakt van een kwaadaardige proxy en op deze manier een man-in-the-middle-aanval kan uitvoeren en gegevens kan onderscheppen. Volgens de onderzoeker is het lek al vrij oud, het werd in 2001 al ontdekt dat de libwww-perl-module de proxy-header verkeerd interpreteerde. Later bleken ook Ruby, Nginx en curl vatbaar te zijn. Nu blijkt het lek ook in Go, Python en PHP te zitten. Scheirlinck meldt op de site dat het ook mogelijk is dat andere talen getroffen zijn.
Om kwetsbaar te zijn is vereist dat code in een cgi-omgeving wordt uitgevoerd en dat HTTP_PROXY als variabele wordt gezien. Daarnaast moet een http-client deze proxy vertrouwen en als zodanig configureren, Die client moet vervolgens een http verzoek in plaats van een https-verzoek uitvoeren. Het advies van de onderzoeker is dan ook om in eerste instantie inkomende proxy-verzoeken zo vroeg mogelijk te blokkeren, voordat zij een applicatie bereiken. Er zijn advisories uitgebracht door Apache, Nginx, Red Hat, Drupal, US CERT, CloudFlare en Akamai.