Vulnerabilidad

Al igual que ocurrió en diciembre del año pasado con Log4Shell, aquella vulnerabilidad que afectaba a multitud de productos Java que hacían uso de la librería Log4J, ha surgido una nueva alerta por la vulnerabilidad que ya es apodada como Text4Shell. Esta vulnerabilidad CVE-2022-42889 afecta también a productos Java que hacen uso de una funcionalidad concreta de la librería Apache Commons Text, y podría llegar a permitir a un atacante remoto ejecutar código arbitrario en un servidor.

La biblioteca Apache Commons Text es una librería alternativa a las funcionalidades nativas del JDK de Java para el procesamiento de cadenas de texto centrada en algoritmos concretos para la gestión de este tipo de datos. Sus métodos disponibles permiten hacer uso de interpolación mediante prefijos, variables y marcas de plantilla.

A pesar de la criticidad de la vulnerabilidad CVE-2022-42889 cabe destacar que la utilización en proyectos del componente vulnerable de la librería Apache Commons Text es poco usual en el procesamiento de entradas de datos no confiables controladas por un usuario. Esta situación da lugar a que la probabilidad de explotación de esta vulnerabilidad sea bastante reducida en comparación con Log4Shell.

El fallo fue identificado y notificado al equipo de seguridad de Apache Commons el día 03/09/2022 por Álvaro Muñoz y fue corregido en la versión 1.10.0 publicada el día 24/09/2022 sin haberse documentando la corrección de dicho CVE o los cambios relativos a este problema de seguridad. No fue hasta el día 13 de octubre cuando se notificó de esta situación en la lista de desarrolladores de Apache.

El commit en que se soluciona esta situación se referencia a continuación:

https://github.com/apache/commons-text/commit/b9b40b903e2d1f9935039803c9852439576780ea

La vulnerabilidad CVE-2022-42889 es similar a CVE-2022-33980, que permitía también la interpolación de algunas cadenas de texto en la librería Apache Commons Configuration.

CVE-2022-42889: Características

A continuación, se detallan las características principales de esta vulnerabilidad CVE-2022-42889.

  • Identificador CVE: CVE-2022-42889
  • Fecha de publicación: 13/10/2022
  • Software Afectado: Apache Commons Text
  • CVSS Score: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical)
  • Versiones afectadas:
    • 1.5 – 1.9
  • Requisitos de explotación:
    • La aplicación acepta entradas controladas por los usuarios que posteriormente son procesadas por alguno de los siguientes métodos del componente afectado:
      • StringLookupFactory.INSTANCE.interpolatorStringLookup().lookup()
      • StringSubstitutor.createInterpolator().replace()
    • Versiones de Java iguales o posteriores a Java 15 no serían susceptibles a ejecución remota de código, ya que el motor Nashorn está desactivado y el prefijo “script” no estaría disponible. No obstante, aún serían viables otros ataques a través de los prefijos “url” y “dns”.

Mitigación de TextShell

La solución principal consiste en actualizar urgentemente el componente Apache Commons Text a las versiones disponibles que corrigen esta vulnerabilidad. Concretamente, se debe actualizar a una versión 1.10.0 o posterior de Apache Commons Text.

En esta actualización, se ha optado por deshabilitar por defecto aquellas sustituciones problemáticas. En el fichero changelog de la librería se incluye el siguiente cambio:

Make default string lookups configurable via system property. Remove dns, url, and script lookups from defaults. If these lookups are required for use in StringSubstitutor.createInterpolator(), they must be enabled via system property. See StringLookupFactory for details.

Desde Apache se ha publicado un comunicado con la información oficial y una referencia a la actualización en la que se corrige el problema.

Fuente y redacción: tarlogic.com

Compartir