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

Vulnerabilidad en NewPipe (CVE-2024-32876)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-502 Deserialización de datos no confiables
Fecha de publicación:
24/04/2024
Última modificación:
24/04/2024

Descripción

NewPipe es una aplicación de Android para transmisión de vídeo escrita en Java. Admite la exportación e importación de copias de seguridad, como una forma de permitir a los usuarios mover sus datos a un nuevo dispositivo sin esfuerzo. Sin embargo, en las versiones 0.13.4 a 0.26.1, la importación de un archivo de copia de seguridad desde una fuente que no es de confianza podría haber dado lugar a la ejecución de código arbitrario. Esto se debe a que las copias de seguridad se serializan/deserializan mediante el protocolo de secuencia de serialización de objetos de Java, que puede permitir la construcción de cualquier clase en la aplicación, a menos que esté debidamente restringida. Para explotar esta vulnerabilidad, un atacante necesitaría crear un archivo de copia de seguridad que contenga el exploit y luego persuadir al usuario para que lo importe. Durante el proceso de importación, el código malicioso se ejecutaría, lo que posiblemente bloquearía la aplicación, robaría datos del usuario de la aplicación NewPipe, realizaría acciones desagradables a través de las API de Android e intentaría escapar de la JVM/Sandbox de Android a través de vulnerabilidades en el sistema operativo Android. El ataque sólo puede tener lugar si el usuario importa un archivo de copia de seguridad malicioso, por lo que un atacante tendría que engañar al usuario para que importe un archivo de copia de seguridad desde una fuente que pueda controlar. Los detalles de implementación del archivo de copia de seguridad malicioso pueden ser independientes del usuario atacado o del dispositivo en el que se ejecuta y no requieren privilegios adicionales. Todas las versiones de NewPipe desde 0.13.4 hasta 0.26.1 son vulnerables. NewPipe versión 0.27.0 soluciona el problema haciendo lo siguiente: Restringir las clases que se pueden deserializar al llamar al protocolo de flujo de serialización de objetos de Java, agregando una lista blanca con clases de datos inocuas que no pueden conducir a la ejecución de código arbitrario; desaprobar las copias de seguridad serializadas con el protocolo de flujo de serialización de objetos de Java; use la serialización JSON para todas las copias de seguridad recién creadas (pero aún incluya un archivo alternativo serializado con el protocolo de secuencia de serialización de objetos de Java en el archivo zip de la copia de seguridad para compatibilidad con versiones anteriores); muestra una advertencia al usuario cuando intenta importar una copia de seguridad donde el único modo de serialización disponible es el protocolo de flujo de serialización de objetos de Java (tenga en cuenta que en el futuro este modo de serialización se eliminará por completo).