Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Apache MINA (CVE-2024-52046)

Gravedad CVSS v4.0:
CRÍTICA
Tipo:
CWE-502 Deserialización de datos no confiables
Fecha de publicación:
25/12/2024
Última modificación:
12/02/2025

Descripción

ObjectSerializationDecoder en Apache MINA utiliza el protocolo de deserialización nativo de Java para procesar datos serializados entrantes, pero carece de las defensas y controles de seguridad necesarios. Esta vulnerabilidad permite a los atacantes aprovechar el proceso de deserialización enviando datos serializados maliciosos especialmente manipulados, lo que podría provocar ataques de ejecución remota de código (RCE). Este problema afecta a las versiones principales de MINA 2.0.X, 2.1.X y 2.2.X y se solucionará con las versiones 2.0.27, 2.1.10 y 2.2.4. También es importante tener en cuenta que una aplicación que utiliza la librería central MINA solo se verá afectada si se llama al método IoBuffer#getObject(), y este método específico se llama potencialmente al agregar una instancia de ProtocolCodecFilter usando la clase ObjectSerializationCodecFactory en la cadena de filtros. Si su aplicación utiliza específicamente esas clases, debe actualizar a la última versión de la librería principal de MINA. La actualización no será suficiente: también necesitará permitir explícitamente las clases que el descodificador aceptará en la instancia de ObjectSerializationDecoder, usando uno de los tres nuevos métodos: /** * Aceptar nombres de clase donde el ClassNameMatcher suministrado coincida para * la deserialización, a menos que sean de lo contrario rechazado. * * @param classNameMatcher el comparador a usar */ public void Accept(ClassNameMatcher classNameMatcher) /** * Acepta nombres de clase que coincidan con el patrón proporcionado para * la deserialización, a menos que se rechacen de otra manera. * * @param patrón estándar Java regexp */ public void aceptar(Patrón de patrón) /** * Acepte las clases especificadas como comodín para la deserialización, * a menos que se rechacen de otra manera. * * @param patrones Patrones de nombres de archivos comodín definidos por * {@link org.apache.commons.io.FilenameUtils#wildcardMatch(String, String) FilenameUtils.wildcardMatch} */ public void Accept(String... patrones) De forma predeterminada , el decodificador rechazará *todas* las clases que estarán presentes en los datos entrantes. Nota: Los subproyectos FtpServer, SSHd y Vysper no se ven afectados por este problema.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:apache:mina:*:*:*:*:*:*:*:* 2.0.0 (incluyendo) 2.0.27 (excluyendo)
cpe:2.3:a:apache:mina:*:*:*:*:*:*:*:* 2.1.0 (incluyendo) 2.1.10 (excluyendo)
cpe:2.3:a:apache:mina:*:*:*:*:*:*:*:* 2.2.0 (incluyendo) 2.2.4 (excluyendo)