// For flags

CVE-2024-32876

NewPipe has potential security vulnerability when importing settings

Severity Score

8.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track*
*SSVC
Descriptions

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.

To 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.

The 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.

All 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).

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).

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
Low
* Common Vulnerability Scoring System
SSVC
  • Decision:Track*
Exploitation
None
Automatable
No
Tech. Impact
Total
* Organization's Worst-case Scenario
Timeline
  • 2024-04-19 CVE Reserved
  • 2024-04-24 CVE Published
  • 2024-04-25 EPSS Updated
  • 2024-08-02 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-502: Deserialization of Untrusted Data
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
TeamNewPipe
Search vendor "TeamNewPipe"
NewPipe
Search vendor "TeamNewPipe" for product "NewPipe"
>= 0.13.4 < 0.27.0
Search vendor "TeamNewPipe" for product "NewPipe" and version " >= 0.13.4 < 0.27.0"
en
Affected