Resumen del problema
Información de la vulnerabilidad
- ID del CVE: CVE-2026-34483
- Gravedad: 7.5 (alta)
- Componente afectado:
org.apache.tomcat.embed:tomcat-embed-core:10.1.53 - Tipo de vulnerabilidad: Codificación/escape inadecuado en la salida del componente
JsonAccessLogValve - Versiones afectadas:
- Tomcat 11.0.0-M1 a 11.0.20
- Tomcat 10.1.0-M1 a 10.1.53 ⚠️ Versión que usa actualmente
- Tomcat 9.0.40 a 9.0.116
Riesgos
Esta vulnerabilidad permite ataques de inyección en registros (log injection). Un atacante puede inyectar contenido malicioso en los logs de acceso mediante peticiones especialmente diseñadas, lo que puede provocar:
- Falsificación de logs
- Ataques XSS (Cross‑Site Scripting)
| Manipulación de sistemas de análisis de logs
Soluciones (ordenadas por prioridad)
Solución 1: Actualizar la versión de Spring Boot (⭐ recomendada)
Pasos:
Modifique el archivo pom.xml para cambiar la versión de Spring Boot:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.14</version> <!-- se actualiza de 3.5.13 a 3.5.14 -->
<relativePath/>
</parent>
Ventajas:
- Incluye automáticamente Tomcat 10.1.54+ (con el parche)
- Corrige otros 8 fallos de seguridad adicionales
- No requiere gestionar dependencias manualmente
- Obtiene las últimas correcciones de errores y parrches de seguridad
- Menor costo de mantenimiento a largo plazo
Precauciones:
- Las actualizaciones menores de Spring Boot suelen ser compatibles hacia atrás
- Ejecute pruebas de regresión completas después de la actualización
- Se recomienda validar primero en un entorno de pruebas
Solución 2: Sobrescribir la versión de Tomcat explícitamente (solución temporal)
Si no puede actualizar Spring Boot de inmediato, puede fijar manualmente la versión de Tomcat:
Pasos:
Agregue la siguiente propiedad en la sección <properties> del pom.xml:
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- otras propiedades -->
<!-- Corrige CVE-2026-34483 en Tomcat -->
<tomcat.version>10.1.54</tomcat.version>
</properties>
Ventajas:
| Corrección rápida sin actualizar Spring Boot | Cambios mínimos en el proyecto
Desventajas:
| Requiere mantener manualmente la versión de Tomcat | Riesgo de incompatibilidad con otros componentes de Spring Boot | Fácil de olvidar en futuras actualizaciones
Comparativa de soluciones
| Aspecto | Solución 1: Actualizar Spring Boot | Solución 2: Sobrescribir Tomcat |
|---|---|---|
| Seguridad | ⭐⭐⭐⭐⭐ Corrige todo | ⭐⭐⭐ Solo una vulnerabilidad |
| Esfuerzo | Bajo (cambiar una línea) | Bajo (cambiar una línea) |
| Compatibilidad | Alta (recomendación oficial) | Media (requiere validación propia) |
| Costo de mantenimiento | Bajo (gestión automática) | Medio (manual) |
| Valor a largo plazo | Alto | Bajo |
| Recomendación | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |