[Warning] Kritische Sicherheitslücke in CGI-Umgebungen (Apache, IIS, ...)

Otmar Lendl lendl at cert.at
Mon Jul 18 16:30:59 CEST 2016


        Kritische Sicherheitslücke in CGI-Umgebungen (Apache, IIS, ...)

   18. Juli 2016

   Es wurde ein Designfehler in diversen Implementationen des CGI
   Standards gefunden, der schwerwiegende Folgen für die Sicherheit der
   Webserver haben kann. CERT.at bittet daher um Beachtung der folgenden
   Hinweise.

Beschreibung

   CGI ist ein Standard, mit dem Webseiten dynamisch mit Hilfe von
   Scripten serverseitig erstellt werden können. Dazu werden die
   Informationen über den Client und zur Anfrage in Umgebungsvariablen
   an das Script übergeben.

   Enthält der HTTP-Request einen Header "Proxy:", dann wird der Inhalt
   dieses Headers in die Umgebungsvariable HTTP_PROXY geschrieben. Setzt
   nun seinerseits das Script einen Webrequest (etwa an ein
   Backend-System) ab, dann kann ein gesetztes HTTP_PROXY dazu führen,
   dass dieser Proxy benutzt wird.

Auswirkungen

   Ein Angreifer kann einem Webserver eine Proxy-Konfiguration vorgeben
   und so einen Man-in-the-Middle Angriff durchführen. Mögliche
   Szenarien sind etwa:
     * Information Disclosure der Daten, die von Frontend-Webservern an
       das Backend übermittelt werden
     * Information Injection: der angegebene Proxy kann Daten liefern,
       die Fehlverhalten im Webserver auslöst

Betroffene Systeme

   Eine vollständige Liste aller betroffenen Systeme liegt noch nicht
   vor. Es ist daher bis zum Beweis des Gegenteils davon auszugehen,
   dass jede CGI Umgebung betroffen ist.

   Details werden auf der eigens dafür angelegten Webseite [1] zu
   httpoxy angegeben.

   Ob ein gesetztes HTTP_PROXY eine Wirkung auf das ausgeführte Script
   hat, variiert je nach Programmiersprache (PHP, Python, Perl, Go, ...)
   und hängt auch davon ab welche weiteren Programme (etwa "wget")
   aufgerufen werden.

Abhilfe

   Als erste Notmaßnahme sollten folgende HTTP Header nicht mehr an
   Scripte weitergegeben werden:
     * Proxy
     * Proxy_Host
     * Proxy_Port
     * Proxy_User
     * Proxy_Pass
     * Proxy_Password

Apache

   Mittels des Moduls mod_headers können die kritischen Header leicht
   ausgefiltert werden:
RequestHeader unset Proxy
RequestHeader unset Proxy_Host
RequestHeader unset Proxy_Port
RequestHeader unset Proxy_User
RequestHeader unset Proxy_Pass
RequestHeader unset Proxy_Password

Nginx/FastCGI

fastcgi_param HTTP_PROXY "";

HAProxy

http-request del-header Proxy
http-request del-header Proxy_Host
http-request del-header Proxy_Port
http-request del-header Proxy_User
http-request del-header Proxy_Pass
http-request del-header Proxy_Password

IS/FastCGI component for IIS 6.0 and IIS 7.0

   Folgende Regeln in apphost.config sollte die Umgebungsvariable
   ausfiltern:
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
                <match url="*.*" />
                <serverVariables>
                    <set name="HTTP_PROXY" value="" />
                </serverVariables>
                <action type="None" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Hinweis

   Generell empfiehlt CERT.at, wo möglich die "automatisches
   Update"-Features von Software zu nutzen, für alle Arten von
   Browser-Plugins (Flash, Java, ...) auf die
   "Click-to-play"-Funktionalitäten von Internet-Browsern
   zurückzugreifen, sowie parallel Firewall-Software aktiv und
   den Virenschutz aktuell zu halten.
 __________________________________________________________________

Informationsquelle(n):

   [1] httpoxy Webseite
	https://httpoxy.org/
   [2] Apache-Dev Archiv von 2015
	http://www.gossamer-threads.com/lists/apache/dev/443863
   [3] Apache Advisory
	https://www.apache.org/security/asf-httpoxy-response.txt

-- 
// Otmar Lendl <lendl at cert.at> - T: +43 1 5056416 711
// CERT Austria - http://www.cert.at/
// Eine Initiative der nic.at GmbH - http://www.nic.at/
// Firmenbuchnummer 172568b, LG Salzburg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.cert.at/cgi-bin/mailman/private/warning/attachments/20160718/e166221b/attachment.sig>


More information about the Warning mailing list