Faille critique du mod_rewrite d'Apache HTTP Server
Qui expose les serveurs internes privés sur un proxy inversé



Des chercheurs de Context Security détaillent une nouvelle faille critique qui touche toutes les versions du serveur Web populaire Apache, entre la 1.3 et la plus récente 2.2.20.

La faille permet de contourner le proxy inversé d'un serveur Web, et d'exposer aisément les éventuels serveurs logiques privés sur la machine de proxy ou ailleurs sur le réseau (bien souvent en place à des fins de configuration).

Les proxys inversés sont monnaie courante sur Internet et servent généralement à redistribuer charge et trafic sur plusieurs serveurs. Sur Apache, c'est le module mod_rewrite qui s'occupe de cette tâche suivant des règles définies par le développeur ou l'administrateur réseau.

À un caractère près, sur le fichier de configuration des versions affectées d'Apache, la faille aurait pu être évitée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
RewriteRule ^(.*) http://internalserver:80/$1 [P]
L'absence du slash entre le numéro de port et la variable Regex $1 permet avec une simple requête précédée d'une arobase d'accéder aux serveurs privés :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
GET @InternalNotAccessibleServer/console HTTP/1.0
Dans cette configuration, le mod_rewrite redirige vers l'adresse : internalserver:80@InternalNotAccessibleServer/console où la première partie supposée correspondre au serveur choisi par Apache devient un segment d'authentification complètement inutile dans le cas où le serveur interne est non sécurisé.

Il ne reste à l'attaquant potentiel qu’à connaître (ou découvrir à tâtons) l'adresse IP ou le nom local d'un serveur interne non protégé.

La fondation Apache a sorti une version de patch (2.2.21) qui corrige le problème.





Source : Contexte

Et vous ?

Qu'en pensez-vous ?