Vulnérabilité critique d’exécution de code à distance à travers « Apache Log4j »

  • Auteur/autrice de la publication :
  • Post category:Alertes et Avis

Origine: bjCSIRT

Numéro: 2021/ALERTE/045

Date de l’alerte: 11/12/2021

APERÇU :

Une vulnérabilité de type « Zero-Day » libellée sous le CVE-2021-44228 permettrait à un attaquant de manipuler un système vulnérable afin de télécharger et exécuter du code arbitraire sur le système ciblé.

DESCRIPTION :

Libellée « CVE-2021-44228 », la faille est causée par une insuffisance de validation des entrées dans « Apache Log4j » : une bibliothèque qui permet aux développeurs de journaliser diverses données au sein de leurs applications.

Par cette vulnérabilité, un attaquant peut concevoir une requête spéciale qui sera soumise à un serveur victime utilisant l’instance Log4j vulnérable. Lorsque cette entrée est enregistrée dans le contexte de log4j, la recherche de méthode Java « lookup » exécute sur le serveur LDAP la classe Java distante définie par l’utilisateur . Ceci conduira à une exécution de code à distance sur le serveur victime.

Cette vulnérabilité peut être exploitée par un attaquant distant non authentifié via Internet.

IMPACT :

  • Compromission totale de tout le système.

SYSTEMES AFFECTÉS :

Plusieurs applications conçues en Java utilisent Apache Log4j comme composant logiciel de journalisation tels que : Apache Struts, Apache Solr, Apache Druid, Apache Flink, ElasticSearch, Flume, Apache Dubbo, Logstash, Kafka, Spring-Boot-starter-log4j2 etc.
Tous ces systèmes utilisant la version 2 de Log4j, antérieure à la version 2.15.0-rc1 sont vulnérables à cette faille.

MESURES À PRENDRE :

Pour se protéger contre cette vulnérabilité, il est recommandé de faire la mise à jour d’Apache Log4j à la version 2.15.0-rc2, publiée le 10 décembre 2021 par Apache.

Dans le cas où l’application de correctif n’est pas possible immédiatement, trois (03) solutions d’atténuation peuvent être utilisées pour contrecarrer les tentatives d’exploitation de cette vulnérabilité :

  • Pour les versions 2.10 de Log4j ou supérieures : définir la valeur de « log4j.formatMsgNoLookups » ou « Dlog4j.formatMsgNoLookups » à True   ;
  • Pour les versions 2.7 de Log4j ou supérieures : utiliser « %m{nolookups} » dans la configuration de « PatternLayout »;
  • Pour les versions 2 de Log4j ou supérieures : supprimer les classes « JdniLookup » et « JdniManager » du paquet « log4j-core.jar ».

REFERENCES :

  • https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/
  • https://www.abc.net.au/news/2021-12-11/log4shell-techs-race-to-fix-software-flaw/100692876
  • https://github.com/YfryTchsGD/Log4jAttackSurface
  • https://www.tenable.com/blog/cve-2021-44228-proof-of-concept-for-critical-apache-log4j-remote-code-execution-vulnerability
Partagez sur vos réseaux.