72 lines
6.8 KiB
JSON
Raw Normal View History

{
"id": "CVE-2024-32876",
"sourceIdentifier": "security-advisories@github.com",
"published": "2024-04-24T19:15:47.140",
"lastModified": "2024-04-24T19:58:40.710",
"vulnStatus": "Awaiting Analysis",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "NewPipe is an Android app for video streaming written in Java. It supports exporting and importing backups, as a way to let users move their data to a new device effortlessly. However, in versions 0.13.4 through 0.26.1, importing a backup file from an untrusted source could have resulted in Arbitrary Code Execution. This is because backups are serialized/deserialized using Java's Object Serialization Stream Protocol, which can allow constructing any class in the app, unless properly restricted.\n\nTo exploit this vulnerability, an attacker would need to build a backup file containing the exploit, and then persuade a user into importing it. During the import process, the malicious code would be executed, possibly crashing the app, stealing user data from the NewPipe app, performing nasty actions through Android APIs, and attempting Android JVM/Sandbox escapes through vulnerabilities in the Android OS.\n\nThe attack can take place only if the user imports a malicious backup file, so an attacker would need to trick a user into importing a backup file from a source they can control. The implementation details of the malicious backup file can be independent of the attacked user or the device they are being run on, and do not require additional privileges.\n\nAll NewPipe versions from 0.13.4 to 0.26.1 are vulnerable. NewPipe version 0.27.0 fixes the issue by doing the following: Restrict the classes that can be deserialized when calling Java's Object Serialization Stream Protocol, by adding a whitelist with only innocuous data-only classes that can't lead to Arbitrary Code Execution; deprecate backups serialized with Java's Object Serialization Stream Protocol; use JSON serialization for all newly created backups (but still include an alternative file serialized with Java's Object Serialization Stream Protocol in the backup zip for backwards compatibility); show a warning to the user when attempting to import a backup where the only available serialization mode is Java's Object Serialization Stream Protocol (note that in the future this serialization mode will be removed completely).\n"
},
{
"lang": "es",
"value": "NewPipe es una aplicaci\u00f3n de Android para transmisi\u00f3n de v\u00eddeo escrita en Java. Admite la exportaci\u00f3n e importaci\u00f3n 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\u00f3n de un archivo de copia de seguridad desde una fuente que no es de confianza podr\u00eda haber dado lugar a la ejecuci\u00f3n de c\u00f3digo arbitrario. Esto se debe a que las copias de seguridad se serializan/deserializan mediante el protocolo de secuencia de serializaci\u00f3n de objetos de Java, que puede permitir la construcci\u00f3n de cualquier clase en la aplicaci\u00f3n, a menos que est\u00e9 debidamente restringida. Para explotar esta vulnerabilidad, un atacante necesitar\u00eda 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\u00f3n, el c\u00f3digo malicioso se ejecutar\u00eda, lo que posiblemente bloquear\u00eda la aplicaci\u00f3n, robar\u00eda datos del usuario de la aplicaci\u00f3n NewPipe, realizar\u00eda acciones desagradables a trav\u00e9s de las API de Android e intentar\u00eda escapar de la JVM/Sandbox de Android a trav\u00e9s de vulnerabilidades en el sistema operativo Android. El ataque s\u00f3lo puede tener lugar si el usuario importa un archivo de copia de seguridad malicioso, por lo que un atacante tendr\u00eda que enga\u00f1ar al usuario para que importe un archivo de copia de seguridad desde una fuente que pueda controlar. Los detalles de implementaci\u00f3n 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\u00f3n 0.27.0 soluciona el problema haciendo lo siguiente: Restringir las clases que se pueden deserializar al llamar al protocolo de flujo de serializaci\u00f3n de objetos de Java, agregando una lista blanca con clases de datos inocuas que no pueden conducir a la ejecuci\u00f3n de c\u00f3digo arbitrario; desaprobar las copias de seguridad serializadas con el protocolo de flujo de serializaci\u00f3n de objetos de Java; use la serializaci\u00f3n JSON para todas las copias de seguridad reci\u00e9n creadas (pero a\u00fan incluya un archivo alternativo serializado con el protocolo de secuencia de serializaci\u00f3n 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 \u00fanico modo de serializaci\u00f3n disponible es el protocolo de flujo de serializaci\u00f3n de objetos de Java (tenga en cuenta que en el futuro este modo de serializaci\u00f3n se eliminar\u00e1 por completo)."
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "security-advisories@github.com",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "CHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "LOW",
"baseScore": 8.5,
"baseSeverity": "HIGH"
},
"exploitabilityScore": 1.8,
"impactScore": 6.0
}
]
},
"weaknesses": [
{
"source": "security-advisories@github.com",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-502"
}
]
}
],
"references": [
{
"url": "https://docs.oracle.com/javase/6/docs/platform/serialization/spec/protocol.html",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/TeamNewPipe/NewPipe/commit/a69bbab73220f36e53c801cf7e9ea3627bb017eb",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/TeamNewPipe/NewPipe/releases/tag/v0.27.0",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/TeamNewPipe/NewPipe/security/advisories/GHSA-wxrm-jhpf-vp6v",
"source": "security-advisories@github.com"
}
]
}