Vigil@nce - Apache Commons Daemon : élévation de privilèges via jsvc
août 2011 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Lorsque Apache Commons Daemon est installé sous Linux et compilé
avec libcap, les capacités ne sont pas perdues, ce qui permet à
une application d’accéder aux fichiers avec les droits root.
Gravité : 2/4
Date création : 12/08/2011
PRODUITS CONCERNÉS
– Apache Tomcat
– Unix - plateforme
DESCRIPTION DE LA VULNÉRABILITÉ
Le projet Apache Commons Daemon permet de créer un démon (Unix) ou
un service (Windows) qui exécute une application Java non
interactive. Ce projet comporte :
– une API Java, et
– un programme C :
+ jsvc (Unix) développé en C, qui démarre un processus en démon
avec fork(), ou
+ procrun (Windows) développé en C, qui démarre un service.
Apache Tomcat utilise Apache Commons Daemon.
L’outil jsvc est par exemple exécuté ainsi par l’utilisateur root.
./jsvc -cp commons-daemon-1.0.6.jar:monJar.jar -user nobody
maClasse
Dans ce cas, monJar.maClasse est démarré en mode démon, et avec
les privilèges de l’utilisateur "nobody".
L’outil jsvc peut être compilé sous Linux avec la bibliothèque
libcap, qui gère les capacités ("capabilities"). Cependant, dans
ce cas, le démon ne perd pas ses capacités. Dans l’exemple
précédent, l’utilisateur nobody obtient alors des capacités de
l’utilisateur root.
Lorsque Apache Commons Daemon est installé sous Linux et compilé
avec libcap, les capacités ne sont donc pas perdues, ce qui permet
à une application d’accéder aux fichiers avec les droits root.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Apache-Commons-Daemon-elevation-de-privileges-via-jsvc-10923