[INFO] [APACHE] Une vulnérabilité au sein des serveurs applicatifs Java permet d'exécuter du code à distance

Comme chaque semaine, le CERT-XMCO vous partage une information ayant fait l’actualité la semaine dernière. Cette semaine, nous vous proposons le bulletin d’information concernant la vulnérabilité touchant la bibliothèque Apache Commons, utilisée sur de très nombreuses plateformes Java.

Bulletin CXA-2015-3634
Titre Une vulnérabilité au sein des serveurs applicatifs Java permet d’exécuter du code à distance
Titre officiel What Do WebLogic, WebSphere, JBoss, Jenkins, OpenNMS, and Your Application Have in Common? This Vulnerability
Criticité Criticite Elevée
Date 09 Novembre 2015
Plateforme Toutes
Description  

Des chercheurs de la société Foxglove Security ont découvert une vulnérabilité de type RCE (Remote code Execution) référencée CVE-2015-4852, affectant les bibliothèques Apache Commons. La faille provient d’une erreur de manipulation de données dans une méthode permettant de désérialiser un objet Java.

Apache Commons est un ensemble de bibliothèques open source Java intégré aujourd’hui dans de très nombreux logiciels . Cette vulnérabilité affecte notamment les serveurs applicatifs WebLogic, WebSphere ou JBoss ainsi que toutes les applications utilisant l’interface de programmation RMI (Remote Method Invocation). Elle permet à un attaquant d’exécuter du code arbitraire à distance et de prendre le contrôle du serveur qui héberge ces applications.

Seuls Apache et Jenkins ont réagi pour le moment. Apache propose un correctif à ses bibliothèques de la branche 3.2.X, tandis que Jenkins a fourni une méthode permettant de désactiver le système CLI, utilisé pour mener l’attaque. Cette solution de contournement est disponible à l’adresse suivante : https://jenkins-ci.org/content/mitigating-unauthenticated-remote-code-execution-0-day-jenkins-cli.

Les classes considérées comme « non sécurisées » utilisées au sein du composant « Collections » de la bibliothèque « Apache Commons » sont les suivantes : Clone Transformer, ForClosure, InstantiateFactory, InstantiateTransformer, Invoker Transformer, PrototypeCloneFactory, PrototypeSerializationFactory, WhileClosure.

Il est fortement recommandé de filtrer les entrées utilisateurs sur lesquelles ces classes interagissent. Un correctif disponible pour Apache Commons désactive la possibilité d’envoyer des données sérialisées via ces classes (il en résulte alors une exception).

Les éditeurs des logiciels affectés déplorent le fait qu’ils n’aient pas été prévenus avant la publication de cette vulnérabilité critique de type « Zero Day ». La solution pour corriger cette vulnérabilité est d’appliquer un correctif sur les bibliothèques Apache Commons. Cependant, cette solution n’est pas triviale puisqu’il existe de nombreuses versions d’applications Java et qu’elles utilisent différentes versions de la bibliothèque Apache.

Afin de se prémunir au maximum de cette vulnérabilité, il est recommandé de respecter les bonnes pratiques suivantes :

* Restreindre au maximum l’accès aux fichiers systèmes/réseau pour les applications Java acceptant des objets sérialisés.

* Mettre à jour la bibliothèque Apache Commons.

* Respecter les bonnes pratiques de développement concernant la désérialisation de données provenant de sources n’étant pas de confiance. D’une manière générale, toutes les entrées utilisateurs doivent être filtrées avant d’être utilisées au sein d’une application.

UPDATE : 

Depuis la publication originale de ce bulletin, l’éditeur IBM a publié un correctif concernant WebSphere et Oracle a annoncé la préparation d’un patch concernant WebLogic.

Référence http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/#thefix
http://fishbowl.pastiche.org/2015/11/09/java_serialization_bug/
http://www.zdnet.com/article/java-unserialize-remote-code-execution-hole-hits-commons-collections-jboss-websphere-weblogic/
Id XMCO CXA-2015-3634
Lien extranet XMCO https://cert.xmco.fr/veille/client/index.xmco?nv=CXA-2015-3634

Adrien Guinault

Découvrir d'autres articles