Neutron, nuestro motor de IA, obtuvo un 96.75% en el benchmark CyberGym de UC Berkeley. Más información

Seguridad

Seguridad

Text4Shell (CVE-2022-42889) en aplicaciones móviles... ¿debería preocuparme?

CVE-2022-42889 es una vulnerabilidad de la biblioteca Apache Commons Text, causada por una interpolación de cadenas que abusa de manejadores potentes y presente en aplicaciones populares como Amazon Shopping, Udemy y Grammarly. Este artículo analiza la aplicabilidad y el riesgo de esta vulnerabilidad para las aplicaciones móviles.

CVE-2022-42889 es una vulnerabilidad de la biblioteca Apache Commons Text, causada por una interpolación de cadenas que abusa de manejadores potentes y que permite la ejecución remota de código.

La vulnerabilidad ha sido bautizada como Text4Shell y estuvo siete meses pendiente de corrección hasta el lanzamiento de la versión 1.10 .

En las aplicaciones móviles, la biblioteca Apache Commons Text es relativamente popular y está presente en aplicaciones muy utilizadas como

  • Mi Music, con más de mil millones de descargas.
  • Amazon shopping, con más de quinientos millones de descargas.
  • Flo Ovulation, LG ThinQ, Fitbit, UMANG, Mi Home, Webnovel, Grammarly Keyboard y Udemy, todas con decenas de millones de descargas.

Técnicamente, la vulnerabilidad se debe al uso de manejadores de interpolación que ofrecen la capacidad de ejecutar un script, resolver consultas DNS, leer un archivo, analizar y acceder a XML, leer constantes de Java o realizar solicitudes a URL.

A continuación se muestran ejemplos de cómo explotar el manejador de scripts:

String poc1 = “${script:javascript:java.lang.Runtime.getRuntime().exec(\”touch /tmp/tarlogic\”);}”;
String rce1 = StringSubstitutor.createInterpolator().replace(poc1);
String poc2 = “script:javascript:java.lang.Runtime.getRuntime().exec(\”touch /tmp/tarlogic\”)”;
String rce2 = StringLookupFactory.INSTANCE.interpolatorStringLookup().lookup(poc2);

La vulnerabilidad puede rastrearse hasta dos clases con compatibilidad con la interpolación, StringSubstitutor y StringLookupFactory.

La corrección introducida en la versión 1.10 eliminó de los valores predeterminados los manejadores de scripts, URL y DNS.

* Corrección: https://github.com/apache/commons-text/commit/b9b40b903e2d1f9935039803c9852439576780ea

Pero dejó otros, como el contenido de archivos, las variables de entorno y la ruta XML, que todavía pueden utilizarse de forma abusiva para acceder a información sensible, como secretos, contraseñas o código fuente.

El análisis de las aplicaciones móviles que utilizan la biblioteca vulnerable ha mostrado una baja probabilidad de ser vulnerables, ya que las API afectadas se utilizan en raras ocasiones.

Por ejemplo, en las aplicaciones donde la dependencia está presente, la búsqueda de la clase StringLookupFactory arrojó pocos resultados. Las pilas de llamadas de los métodos no indicaban exposición a entradas peligrosas en los casos coincidentes.

texto alternativo
captura de pantalla de ostorlab

De más de 50 aplicaciones revisadas con Apache Commons Text presente, identificamos una que utiliza StringLookupFactory , y todas las demás utilizan API no vulnerables de la biblioteca.

Sin embargo, buscar la biblioteca por su nombre no es suficiente, ya que en varios casos la biblioteca está ofuscada y se han eliminado los nombres originales de las clases. Véase a continuación un ejemplo de la aplicación Udemy.

texto alternativo
captura de pantalla de ostorlab

texto alternativo
captura de pantalla de ostorlab

En conjunto, nuestro análisis indica una baja probabilidad de ser vulnerable. Si tiene una aplicación móvil:

  • Puede verificar si la biblioteca está presente en su aplicación consultando la sección de huellas (fingerprint) del informe de escaneo.

texto alternativo
captura de pantalla de ostorlab

  • Compruebe el uso de las clases vulnerables mediante el entorno de análisis, pero no olvide comprobar si hay ofuscación.
  • La corrección implementada actualmente solo elimina el riesgo de ejecución remota de código. Todavía es posible leer el contenido de archivos y acceder a variables de entorno o leer constantes de Java. Por ello, se recomienda eliminarlos de la lista de manejadores habilitados.

Etiquetas:

mobile, web, rce