• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

556
Vistas
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?

about 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

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

about 3 years ago · Santiago Trujillo Denunciar

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
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda