En el resumen de esta semana, hablaremos de:
- Linode Terraform (TF) Proveedor Creación de contraseña determinista
- Apache Ejecución remota de código (RCE) de Commons Text
- Vm2 sandbox escapar a RCE
Linode Terraform El proveedor crea una contraseña determinista no sembrada
Se ha descubierto una vulnerabilidad de seguridad en Linode Terraform Provider, un complemento diseñado para automatizar el aprovisionamiento de instancias Linode mediante Terraform. Terraform es una herramienta IaC que se centra en crear, modificar y destruir servidores en lugar de gestionar el software de dichos servidores.
La vulnerabilidad afecta a Linodes creados con el plugin Terraform versión v1.29.3. En el proveedor Terraform , cuando se crea un Linode sin proporcionar una contraseña raíz, el proveedor TF utiliza una contraseña generada aleatoriamente. La versión afectada del plugin parece generar contraseñas deterministas debido a un cambio en nuestra funcionalidad de generación de contraseñas. El componente vulnerable implicaba el uso del paquete math/rand Go en lugar del crypto/rand para la producción de contraseñas aleatorias. Además, el paquete math/rand no estaba siendo sembrado.
Para proteger sus futuras implantaciones, actualice la herramienta Linode Terraform Provider a la última versión, actualmente v1.29.4. Si no puede actualizar inmediatamente, también puede cambiar la contraseña raíz en las instancias desplegadas a través del plugin afectado.
Si necesita más ayuda o tiene alguna pregunta, póngase en contacto con support@linode.com.
Apache Ejecución remota de código (RCE) de Commons Text
Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded. The standard format for interpolation is “${prefix:name}”, where “prefix” is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation.
CVE-2022-42889 es una ejecución remota de código que existe en Apache Commons Text versión 1.5 a 1.9 donde el conjunto de instancias Lookup por defecto (de la clase StringSubstitutor) incluía interpoladores que podían resultar en la ejecución de código arbitrario o el contacto con servidores remotos. Los lookups vulnerables son:
- "script" - Ejecuta expresiones utilizando el motor de ejecución de scripts de la JVM (javax.script)
- "dns" - Resuelve registros DNS
- "url" - Cargar valores desde URLs
Además, cualquier aplicación de servidor remoto que utilice valores predeterminados de interpolación en las versiones afectadas puede ser vulnerable a la ejecución remota de código o al contacto involuntario con servidores remotos si se utilizan valores de configuración que no sean de confianza.
La forma de determinar si tiene instalada esta biblioteca es ejecutar `find / -type f -name 'commons-text*.jar'`, que nos dará cualquier archivo .jar con el prefijo commons-text.
La corrección está disponible a partir de Apache Commons Text 1.10.0. La corrección desactiva por defecto los interpoladores dns, url y script lookup. También se pueden aplicar otras soluciones, como desinfectar la entrada en los lugares donde se aceptan y procesan datos no fiables.
Vm2 sandbox escapar a RCE
vm2 es un paquete npm ampliamente utilizado que actúa como una caja de arena donde se puede ejecutar código no confiable con módulos incorporados de Node permitidos. Este paquete es muy popular con más de 16 millones de descargas al mes, por lo que es una vulnerabilidad digna de aprovechar contra una aplicación con el paquete vm2 instalado.
CVE-2022-36067 es una ejecución remota de código que existe en la librería vm2 sandbox donde un usuario podría escapar del sandbox de vm2 y obtener acceso al host que ejecuta el sandbox. La vulnerabilidad afecta actualmente a las versiones 3.9.10 e inferiores.
Esta vulnerabilidad implica el uso del método prepareStackTrace, que es una función que permite a los desarrolladores personalizar la pila de llamadas de un error ocurrido en la aplicación. El método prepareStackTrace es un constructor de "error" que crea un objeto "Error". Cuando se produce un error y se accede a la propiedad "stack" del objeto error lanzado, Node.js llamará a este método proporcionándole como argumentos una representación de cadena del error junto con un array de objetos "CallSite".
Los investigadores comenzaron sobrescribiendo el objeto Error global con su propio objeto. Este nuevo objeto permite al atacante utilizar la función prepareStackTrace con el fin de aprovechar una función no sandboxed llamada "getThis", que es una función utilizada para devolver el objeto "this" en un marco de pila. Este objeto de pila es un objeto no aislado que podría permitir a un atacante ejecutar funciones que escaparían del aislamiento y ejecutarían código en el host en el que se está ejecutando el código.
La corrección está disponible a partir de vm2 3.9.11.
Comentarios