Compruebe el estado de las CVE. Más información.
Ya están disponibles los parches de php2shell (CVE-2026-109618 y CVE-2026-109619) para PHP en fin de vida útil. Dado que las respuestas del departamento de ventas están tardando más de lo habitual debido a la elevada demanda, la forma más rápida de obtener los paquetes parcheados es comprar ELS para Runtimes en línea (se abre en una pestaña nueva). | Lee las preguntas frecuentes sobre los parches
Este CVE ha sido resuelto por el equipo de TuxCare y
se ha enviado un parche a ELS para los usuariosde Spring®.
Spring® Framework es un marco de trabajo completo y de código abierto para crear aplicaciones Java. Proporciona inyección de dependencias (DI), programación orientada a aspectos (AOP) y gestión de transacciones, lo que hace que el desarrollo Java sea más modular y eficiente.
Spring® Context es un módulo central de Spring® Framework que proporciona una potente inyección de dependencias (DI) y gestión del contexto de la aplicación. Se basa en el módulo Spring® Beans y actúa como interfaz central para configurar y gestionar una aplicaciónSpring®.
La gestión inadecuada de la distinción entre mayúsculas y minúsculas tiene lugar cuando el producto no tiene en cuenta correctamente las diferencias entre mayúsculas y minúsculas al acceder a un recurso o determinar sus propiedades, lo que da lugar a resultados incoherentes.
CVE-2024-38820 es una vulnerabilidad de gravedad media derivada de la corrección de CVE-2022-22968. La corrección hacía que los patrones disallowedFields de DataBinder no distinguieran entre mayúsculas y minúsculas. Sin embargo, debido a las excepciones dependientes de la localización en String.toLowerCase(), es posible que algunos campos no estén protegidos como se pretendía.
Este problema afecta a varias versiones de:
org.springframework: paquete spring-context,
org.springframework: paquete spring-core,
org.springframework: paquete spring-web,
org.springframework: paquete spring-webflux,
org.springframework: paquete spring-webmvc,
org.springframework: paquete spring-websocket.
| Dossier de vulnerabilidad | |
| ID de la CVE | 38820 |
| Severidad | Media: 5,3 |
| ID y nombre del CWE | CWE-178: Manejo incorrecto de la sensibilidad de mayúsculas y minúsculas |
| Proyecto afectado | Spring® Framework |
| Paquetes afectados | spring-context
spring-core spring-web spring-webflux spring-webmvc spring-websocket |
| Versiones afectadas | All prior 5.3.0, <5.3.0;5.3.40>,<6.0.0;6.0.24>,<6.1.0;6.1.13> |
| NVD Fecha de publicación | 18 de octubre de 2024 (Spring.io: 17 de octubre de 2024) |
| TuxCare fix date | 25 de noviembre de 2025 |
| TuxCare versión fija | 5.3.39tuxcare.2 |
https://mvnrepository.com/artifact/org.springframework/spring-context
https://mvnrepository.com/artifact/org.springframework/spring-core
https://mvnrepository.com/artifact/org.springframework/spring-web
https://mvnrepository.com/artifact/org.springframework/spring-webflux
https://mvnrepository.com/artifact/org.springframework/spring-webmvc
https://mvnrepository.com/artifact/org.springframework/spring-websocket
Corregido en: ELS para Spring Framework:spring-web v5.3.39.TuxCare.2 que se basa en la última versión de la comunidad de código abierto 5.3.39 como línea de base, donde se aplicaron todos los parches TuxCare.
CVE-2024-38820 es una vulnerabilidad en el componente DataBinder deSpring® Framework, que se encarga de vincular datos externos a objetos Java. Este problema surge del manejo inadecuado de la distinción entre mayúsculas y minúsculas en los patrones disallowedFields, lo que podría permitir la manipulación no autorizada de campos de datos.
CVE-2024-38820 es un problema porque permite la manipulación no autorizada de campos confidenciales durante el enlace de datos en aplicacionesSpring®, lo que podría dar lugar a eludir la seguridad o a un comportamiento inesperado de la aplicación.
Spring® DataBinder se utiliza para vincular datos entrantes (por ejemplo, de solicitudes HTTP) a objetos Java. Los desarrolladores suelen utilizar disallowedFields para bloquear la configuración de campos específicos, normalmente por motivos de seguridad (por ejemplo, para evitar que los usuarios sobrescriban los campos isAdmin o role ).
CVE-2024-38820 surge porque el mecanismo disallowedFields distingue entre mayúsculas y minúsculas, pero las operaciones de vinculación pueden ignorar las mayúsculas y minúsculas o permitir otras alternativas.
Esto es lo que podría pasar:
Corrupción de la lógica empresarial - Se podrían manipular campos sensibles o internos.
He aquí un ejemplo mínimo para reproducir CVE-2024-38820, mostrando cómo un error de case en DataBinder.disallowedFields puede permitir la configuración de campos sensibles que deberían haber sido bloqueados.
Configuración:Spring® Boot +Spring® Web (versión vulnerable)
pom.xml: utiliza una versión vulnerablede Spring® (por ejemplo, 5.3.39).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.18</version> <!– Uses Spring® Framework 5.3.39 –>
</dependency>
Código de ejemplo
Usuario.java
public clase Usuario {
privado String username;
booleano privado isAdmin;
// Getters and setters
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public boolean isAdmin() { return isAdmin; }
public void setAdmin(boolean isAdmin) { this.isAdmin = isAdmin; }
}
UserController.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
@Controlador
@RequestMapping("/usuario")
public clase UserController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setDisallowedFields("isAdmin"); // Pretende bloquear la vinculación de isAdmin
}
@PostMapping
@ResponseBody
public String createUser(@ModelAttribute Usuario usuario) {
return "NombreUsuario: " + user.getUsername() + ", isAdmin: " + user.isAdmin();
}
}
Prueba mediante Curl o Postman
✅ Solicitud de seguridad prevista
curl -X POST http://localhost:8080/user -d "username=bob&isAdmin=true"
❌ Bypass mediante variación de casos
curl -X POST http://localhost:8080/user -d "username=bob&IsAdmin=true"
Spring® Framework 5.3.x ya no es compatible con la comunidad de código abierto, ya que su fecha de fin de vida útil es el 30 de junio de 2023. Esto simplemente significa que la versión a partir de esa fecha no recibirá ninguna actualización para solucionar este problema.
Los usuarios de los componentes afectados deben aplicar una de las siguientes mitigaciones:
¿Necesita una solución para esta vulnerabilidad en cualquier otra versiónde Spring® Framework? Póngase en contacto con nosotros, ¡estamos aquí para ayudarle!