Der freie Server Nginx stellt Webserver, Reverse Proxy und E-Mail-Proxy (POP3/IMAP) bereit. Eine kürzlich entdeckte Sicherheitslücke in Nginx hat zur Folge, dass ein entfernter Angreifer Befehle mit den Rechten der Applikation ausführen kann.
Ursache hierfür ist ein von Greg MacManus (Isight Partners Labs) entdeckter Stack-Buffer-Overflow-Fehler. Dieser kann in einem der Worker-Prozesse durch speziell formatierte Server-Anfragen seitens eines Clients ausgelöst werden.
Der Programmierfehler befindet sich in der Quelltext-Datei “src/http/ngx_http_parse.c”. Ein Patch wurde ebenfalls veröffentlicht. Dieser fängt die kritischen Client-Anfragen ab, und verhindert so entsprechende Attacken:
--- src/http/ngx_http_parse.c
+++ src/http/ngx_http_parse.c
@@ -2209,6 +2209,10 @@ data: }
+ if (ctx->size < 0 || ctx->length < 0) {
+ goto invalid;
+ }
+ return rc; done:
Neben diesem Patch wurde auch ein Workaround für die Konfigurationsdateien veröffentlicht. Hierzu muss in jedem “server{}”-Block einfach folgende Anweisung eingefügt werden:
if ($http_transfer_encoding ~* chunked) { return 444; }
Betroffen sind die Nginx-Versionen 1.3.9 bis 1.4.0.

