nginx [NGINX] est un serveur web léger et performant, fonctionnant sur la plupart des systèmes d'exploitation (Linux, BSD, Mac OS X, Solaris, Windows). D'après l'étude de Netcraft de septembre 2009 [NETCRAFT], il serait le 4ème serveur web le plus utilisé dans le monde. Dû à la médiatisation de la vulnérabilité Windows SMB2, l'annonce d'une vulnérabilité touchant toutes les versions du serveur web nginx est passée largement inaperçue. Reportée par Chris Ries, elle a été patchée le 14 septembre 2009 avec un message de commit concis, mais néanmoins plus honnête que ceux du noyau Linux : « Security: a segmentation fault might occur in worker process while specially crafted request handling. »
1. Analyse de la vulnérabilité
1.1 Analyse du patch
Le patch [PATCH] indique que le bug se situe dans la fonction ngx_http_parse_complex_uri (src/http/ngx_http_parse.c) responsable du parsing d'URI complexe, c'est-à-dire comportant des caractères encodés en hexadécimal, des ./, ../, etc. :
Index: src/http/ngx_http_parse.c
===================================================================
--- src/http/ngx_http_parse.c (revision 2410)
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première