Un code d'exploitation permettant une élévation de privilège sur Apache va être prochainement publié

Le chercheur en sécurité Charles Fol, de la société Ambionics, s’est récemment penché sur la création d’un code d’exploitation permettant une élévation de privilège au sein des versions 2.4.17 (9 octobre 2015) à 2.4.38 (1er avril 2019) d’Apache httpd. C’est également lui qui avait découvert la vulnérabilité.

Cette vulnérabilité est référencée CVE-2019-0211 et provenait d’une erreur dans les modules multiprocessus (MPM) event, worker et prefork.

Les recherches présentées ici se sont concentrées sur le module prefork.

Afin d’obtenir une exécution de code dans le contexte du processus principal (root), le chercheur a trouvé un moyen d’écrire depuis un worker (exécuté avec les privilèges restreints www-data) sur la mémoire partagée entre deux processus, la shared-memory area (SHM). Pour cela, il présente une vulnérabilité 0-day sur le module php (au travers de l’exploitation d’une vulnérabilité de type use-after-free) afin d’écrire au sein de cette mémoire partagée et de poursuivre son exploitation.

 

annonce-code-exploit

 

Dans un second temps, il utilise son accès en lecture et en écriture pour trouver l’adresse de la variable all_buckets et il fait pointer un champ de cette variable vers une structure qu’il a créée dans la mémoire partagée.

Au prochain redémarrage d’Apache (dans les configurations Linux standards, celui-ci a lieu à 6h25 au travers du logrotate), l’attaquant verra le code contenu dans sa structure exécuté, avec les privilèges du processus parent. Le taux de succès remonté par le chercheur est de 80 % pour la configuration par défaut incluant 4 workers et proche de 100 % dès que l’on augmente leur nombre.

Note: Un code d’exploitation effectuant toutes ces étapes sera prochainement mis à disposition par le chercheur.


Référence

https://cfreal.github.io/carpe-diem-cve-2019-0211-apache-local-root.html
https://securityaffairs.co/wordpress/83225/hacking/cve-2019-0211-apache-flaw-allows-getting-root-access-via-script.html

Adrien Guinault

Découvrir d'autres articles