Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

711
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!