Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

712
Visualizações
Gradle/Java: ¿Cómo actualizar log4j de forma segura?

Dada la vulnerabilidad reciente de Log4J, ¿cuál es la forma más segura de actualizar las dependencias transitivas en un proyecto gradle? Mi proyecto no usa explícitamente log4j (usa logback) pero tiene una serie de dependencias que trae las versiones vulnerables (< 2.15.0). Primero, ¿es necesario actualizar algo si mi SLF4J usa el inicio de sesión? Y si tuviera que actualizar, ¿cómo obligo a que 2.15 esté presente en classpath en lugar de la versión anterior?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Agregue lo siguiente a su archivo gradle.build :

 configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'org.apache.logging.log4j') { details.useVersion '2.17.1' details.because 'zero-day exploits suck' } } } dependencies { … }

Tenga en cuenta que, como señala la documentación :

los siguientes mecanismos le permiten escribir reglas que se inyectan directamente en el motor de resolución. Debido a esto, pueden verse como soluciones de fuerza bruta , que pueden ocultar problemas futuros (por ejemplo, si se agregan nuevas dependencias). Por lo tanto, el consejo general es usar los siguientes mecanismos solo si otros medios no son suficientes.

Me doy cuenta de que el OP solicita la forma "más segura" de actualizar las dependencias; elijo interpretar eso como lo más probable para eliminar las vulnerabilidades de día cero. Sin embargo, reconozco que este enfoque de fuerza bruta no garantiza la compatibilidad entre las bibliotecas, pero esto debería garantizar que ninguna versión vulnerable de log4j termine en su árbol de dependencia/compilaciones.

Por supuesto, debe ejecutar gradle dependencies después de realizar el cambio para asegurarse de que los cambios se realizaron y no tiene versiones persistentes con problemas.

Actualización: eliminó la comparación de versiones, como se recomienda aquí .

Actualización: versión aumentada a 2.17.1

over 4 years ago · Santiago Trujillo Relatório

0

Puede agregar el complemento de gestión de dependencias a su gradle.build:

 plugins { id 'io.spring.dependency-management' version '1.0.11.RELEASE' } dependencyManagement { imports { mavenBom 'org.apache.logging.log4j:log4j-bom:2.17.0' } }

Para confirmar el cambio, ejecute ./gradlew dependencies debería ver algo como

 +--- org.apache.logging.log4j:log4j-to-slf4j:2.14.1 -> 2.17.0 | | | | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.32 | | | | \--- org.apache.logging.log4j:log4j-api:2.17.0
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda