Los investigadores que analizaron la vulnerabilidad recientemente revelada en Apache Commons Text, a la que algunos se refieren como Text4Shell, la describieron esta semana como grave, pero es poco possible que sea tan perjudicial como el error Log4j del año pasado.
La falla (CVE-2022-42889) está presente en las versiones 1.5 a 1.9 de Apache Commons Text y brinda a los atacantes una forma de ejecutar código malicioso de forma remota en sistemas vulnerables. La Fundación de Computer software Apache (ASF) reveló la falla la semana pasada en un breve aviso y recomendó que las organizaciones actualicen a Apache Commons Textual content 1.10., una versión que ASF lanzó el 24 de septiembre o más de dos semanas antes de la divulgación del mistake.
CVE-2022-42889 se deriva de valores predeterminados inseguros cuando Apache Commons Textual content realiza una función llamada interpolación de variables, que implica el proceso de buscar y evaluar cadenas de código que contienen marcadores de posición. Según la ASF, el conjunto de instancias de búsqueda en las versiones 1.5 a 1.9 de Apache Commons Textual content incluía interpoladores que podían desencadenar la ejecución de código arbitrario o el contacto con servidores remotos. Desde que se reveló la vulnerabilidad, varios investigadores han publicado un código de prueba de concepto que muestra cómo se puede explotar y escáneres para encontrar objetivos potenciales para atacar.
Shachar Menashe, director sénior de investigación de seguridad en JFrog, dice que Apache Commons Textual content (ACT) es una biblioteca de Java extremadamente común centrada en algoritmos que funcionan en cadenas. «ACT proporciona una API para realizar la interpolación o sustitución de variables, lo que permite que las propiedades se evalúen y amplíen dinámicamente», dice Menashe. «Se descubrió que algunas funciones de esta biblioteca conducen a la ejecución remota de código si los datos controlados por el atacante se pasan a estas funciones».
Hay tres posibles fuentes de sustitución que podrían tener un impacto en la seguridad si un atacante tiene el handle de la cadena que se interpola: script, dns y url, explica. Los atacantes podrían usar la fuente del script para ejecutar código JavaScript arbitrario podrían usar la fuente dns para las solicitudes dns proxy, y la fuente url como un vector de falsificación de solicitud del lado del servidor, dice Menashe.
Sin embargo, «la vulnerabilidad solo puede explotarse en los casos en que exista algún código Java que utilice [Apache Commons Text] y pasa datos controlados por atacantes a funciones específicas”, dice. “Creemos que la explotación no será tan generalizada como Log4Shell, ya que parece menos possible que estas funciones reciban información de usuarios externos”.
Un atacante tendría que investigar la aplicación Java de destino y encontrar una entrada que se pase a las funciones vulnerables, que el atacante puede controlar, dice Menashe. Al mismo tiempo, no es prudente descartar esa posibilidad.
«Todavía es posible que esto explote si los investigadores comienzan a encontrar otros servicios populares de terceros que usan esta biblioteca y pasan información externa a estas funciones vulnerables de forma predeterminada», señala Menashe. «Pero a partir de ahora, no se han encontrado tales servicios de terceros».
ASF explain la biblioteca de Commons Text como complemento al manejo de texto estándar de Java Growth Kit (JDK). Listas de repositorios Maven Central Java de Sonatype 2.588 proyectos que actualmente utilizan la biblioteca. Entre ellos se encuentran Apache Hadoop Popular, Apache Velocity, Spark Undertaking Main y Apache Commons Configuration,
La explotación generalizada parece improbable
Erick Galinkin, investigador principal de Rapid7, dice que el hecho de que CVE-2022-42889 sea una vulnerabilidad de biblioteca hace que sea difícil decir con certeza cuál será su impacto. Mucho depende de cómo se use el objeto susceptible en una aplicación en distinct. «En typical, nuestra evaluación es que la vulnerabilidad es potencialmente grave», dice. «Ciertamente es importante parchear las aplicaciones afectadas a medida que esos parches estén disponibles, pero no vale la pena entrar en pánico».
La gravedad es realmente una función de cómo se united states of america el objeto susceptible, el interpolador Commons Textual content StringSubstitutor. «Si hay una aplicación que utiliza el interpolador en una entrada arbitraria que no es de confianza, el usuario de esa aplicación lo va a pasar mal», dice.
Pero según la investigación inicial, el objeto vulnerable no es muy común, y es poco possible que un atacante sin privilegios obtenga el control de las cadenas relevantes. «Dicho esto, todavía puede haber alguna aplicación que use esto de una manera riesgosa, y en ese caso, el potencial para la ejecución del código es muy alto», dijo Galinkin.
Agrega que la capacidad de un atacante para descubrir objetivos vulnerables depende de cómo una organización podría haber implementado el componente vulnerable. «Muchas de las pruebas de concepto de la vulnerabilidad, incluida la nuestra, solo implican pasar una cadena diseñada al interpolador, por lo que, en ese sentido, es extremadamente fácil de explotar», dice. En muchas otras implementaciones, un atacante ya debería tener algún nivel de acceso, lo que dificultaría su explotación.
Menashe señala que JFrog ha escrito un herramienta de código abierto para detectar los binarios de Java que son vulnerables a este problema. La herramienta puede ayudar a las organizaciones a determinar si la versión de commons-textual content es susceptible.
Agrega: «La herramienta también localiza las llamadas a las funciones vulnerables en compilados [.jar files] e informa los resultados como nombres de clases y nombres de métodos en los que aparece cada llamada vulnerable».