15 octobre 2021

Possibilité de traverser de chemins sur Apache 2.4.49 (CVE-2021-41773)

Apache HTTP Server - Wikipedia

Introduction

Récemment, une vulnérabilité impactant Apache a fait parler d’elle au sein de la communauté de la sécurité informatique. En effet, une 0-day (référencée CVE-2021-41773) a été divulguée publiquement avec une preuve de concept simple à l’appui.

Cette faille de sécurité permet à un attaquant de traverser les chemins (Path Traversal) et par conséquent de lire des fichiers de configuration du système. La lecture de fichiers arbitraires se fait uniquement si le service Apache dispose des permissions système adéquates (permissions du processus Apache).

Apache est l’un des serveurs web le plus utilisés (part de marché de 27% en avril 2019). Ce qui augmente fortement la probabilité qu’un site web soit compromis, si la version vulnérable est installée dessus.

De la lecture de fichiers vers l’exécution de commandes à distance

La vulnérabilité de Path Traversal référencée CVE-2021-41773, a été activement exploitée dans la nature avant que la communauté derrière le développement du projet Apache ne soit tenu informée de la faille (en septembre). Très rapidement, des preuves de concept (exploits) ont vu le jour (par des acteurs malveillants, mais aussi par des chercheurs en sécurité).

La version initiale d’Apache impactée par la faille est la 2.4.49.

La capture suivante illustre succinctement l’exploitation de la vulnérabilité :

Figure 1 : Exploitation de la CVE-2021-41773

La capture de ci-dessus montre qu’avec une simple requête GET un attaquant est en mesure de lire le fichier /etc/passwd du système linux sous-jacent. Ce fichier dispose des permissions de lecture de tous (donc également du processus Apache en cours d’exécution).

Pour une exploitation réussie, il est nécessaire que la cible réunisse les prérequis suivants :

  1. Version d’Apache vulnérable
  2. La configuration comporte « Require all granted » ou que la ligne « Require all denied » est absente du fichier (présente par défaut)

La charge malveillante pour exploiter la vulnérabilité de Path Traversal est la suivante :

http://127.0.0.1/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

Une fois que cette vulnérabilité a été publique, un chercheur en sécurité « Hacker Fantastic » a constaté (et publié) l’information comme quoi la vulnérabilité pouvait également permettre de l’exécution de commande à distance (RCE) :

Figure 2 : Tweet informant de la possibilité d’exécution de code arbitraire à distance

Néanmoins, pour cela, il est nécessaire d’ajouter 3 nouvelles conditions supplémentaires, à savoir, l’activation du module CGI, l’autorisation du dépôt d’un fichier (script malveillant maîtrisé par l’attaquant) et de pouvoir attribuer les permissions d’exécution à ce même fichier (+x sous UNIX).

Par la suite, un autre chercheur a publié une autre charge malveillante permettant l’exécution de code arbitraire à distance (sans avoir à effectuer un dépôt de fichier) :

$ curl --data "A=|id>/tmp/x" 'http://127.0.0.1/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh' -vv

Enfin, deux autres chercheurs (Will Dormann et Tim Brown) ont montré qu’il était également possible d’exploiter cette vulnérabilité sur un serveur Apache s’exécutant sur un système Windows. Dans ces conditions, l’appel à un fichier binaire .exe permet son exécution, ainsi le Path Traversal abouti directement à une exécution de commande arbitraire à distance sous le système Windows.

Voici une capture d’écran publiée par ces chercheurs illustrant l’apparition de la calculatrice de Windows (calc.exe) :

Figure 3 : Exécution du processus « calc.exe » via la CVE

Correction de la vulnérabilité

Une première correction a été implémentée par l’équipe de développement d’Apache. Il s’est avéré que ce correctif n’était pas suffisant (CVE-2021-42013). En effet, la charge malveillante suivante permettait de contourner l’assainissement mis en place pour corriger la 1re vulnérabilité :

http://127.0.0.1/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

Pour conclure, il est recommandé d’appliquer au plus vite le dernier correctif implémenté dans la version 2.4.51 d’Apache.

15 octobre 2021 CERT

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *