Skip to main content

Análisis de CVE-2022-42889: la vulnerabilidad de ejecución arbitraria de código en Apache Commons Text

Escrito por

18 de octubre de 2022

0 minutos de lectura

Antes que nada, dejemos claro que NO se trata de una nueva vulnerabilidad Log4Shell ni Spring4Shell. Aunque es un problema de ejecución remota de código, su impacto no es tan grave ni es tan fácil de explotar como el problema de Log4j de diciembre de 2021.

Al igual que en el problema de Log4j, el origen del problema es que se puede realizar una búsqueda que luego alguien puede aprovechar indebidamente. Sin embargo, la vulnerabilidad Log4Shell era muy fácil de explotar, y no necesariamente es el caso esta vez. En realidad, este problema es muy similar a CVE-2022-33980, sobre la que escribimos un artículo a principios de este año.

Explicación de los problemas de seguridad de Apache Commons Text

En la biblioteca Apache Commons Text, puedes interpolar variables. Esto te permite cargar propiedades que se pueden evaluar dinámicamente.

El problema está en StringLookup, que realiza las búsquedas. Estas búsquedas son expresiones que pueden resolver registros DNS, cargar valores desde URL y ejecutar scripts mediante un motor de ejecución de scripts de JVM. Estas URL y estos scripts pueden provenir de fuentes remotas y provocar ejecuciones remotas de código si se usan valores que no son de confianza. Este problema se reporta como una vulnerabilidad de gravedad alta en CVE-2022-42889 y afecta a las versiones 1.5.x a 1.9.x.

Ejemplos de CVE-2022-42889

A continuación, puedes ver dos ejemplos de este tipo de scripts que usan el motor Nashorn o JavaScript. Usar directamente interpolatorStringLookup o hacerlo mediante StringSubstitutor (que probablemente sea más común) produce el mismo resultado.

Ejemplos de código Java que usan StringSubstitutor y StringLookup para ejecutar comandos mediante la interpolación de scripts

Ten en cuenta que el motor de scripting Nashorn ya no está disponible de forma predeterminada en Java 15 y versiones posteriores. Por lo tanto, estos scripts solo se ejecutarán si proporcionas un motor de scripting. Sin embargo, como muchas empresas aún dependen de versiones anteriores, como Java 8, esto puede ser un problema grave. Si usas la versión LTS más reciente, Java 17, no se ejecutará ninguno de los scripts de JavaScript ni de Nashorn, ya que no hay ningún motor disponible de forma predeterminada.

Cómo corregir CVE-2022-42889

Quiero enfatizar una vez más que esto no es otro Log4Shell. Es probable que no uses StringLookup directamente, pero no sabes si alguna de tus bibliotecas transitivas lo usa. La forma más sencilla de resolver este problema es actualizar a la versión 1.10 de commons-text (o una posterior), que desactiva de forma predeterminada los prefijos URL, DNS y script, lo que hace imposible la ejecución arbitraria de código por esta vía.

El análisis con Snyk puede ayudarte a determinar si esta vulnerabilidad está presente en tu stack. Si la detectas, actualiza a la versión 1.10 y ejecuta snyk monitor en la CLI para seguir supervisando tu entorno de producción.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.

Leer más

illustration hero ai
Blog

PHP corrige dos vulnerabilidades críticas de RCE sin autenticación (CVE-2026-109618, CVE-2026-109619): actualiza ahora

Dos fallas críticas en el ciclo de solicitudes de PHP pueden permitir la ejecución remota de código sin autenticación. Actualiza a una versión corregida o instala una corrección retroportada por un proveedor para las versiones anteriores.

blog feature ai lilac
Blog

Convierte tu backlog de vulnerabilidades en pull requests con la remediación agéntica

Evo Remediation Agent ya está disponible en Open Preview e incorpora la resolución automatizada de dependencias a Evo Agentic AppSec. Ahora, los equipos de AppSec pueden ejecutar campañas de remediación continuas

AI Background min crop
Blog

La IA activa todos los riesgos que has aceptado: siete ideas del panel de seguridad de IA sin filtros

La IA hace que los ataques sean más baratos y rápidos, y deja al descubierto riesgos que las organizaciones ya enfrentan. Cuatro líderes de seguridad explican por qué la defensa a velocidad de máquina y la corrección más rápida son esenciales.