Vulnerabilidad en OpenOffice que permite la ejecución de código al abrir un archivo

Se ha identificado una vulnerabilidad (CVE-2021-33035) en la suite ofimática Apache OpenOffice que permite la ejecución de código al abrir un archivo especialmente diseñado en formato DBF. El investigador que descubrió el problema advirtió sobre la creación de un exploit que funcione para la plataforma Windows. Actualmente, la solución a la vulnerabilidad solo está disponible en forma de parche en el repositorio del proyecto, que se incluyó en las versiones de prueba de OpenOffice 4.1.11. Aún no hay actualizaciones para la rama estable.

El problema se debe a que OpenOffice confía en los valores fieldLength y fieldType en el encabezado de los archivos DBF para asignar memoria, sin verificar que el tipo de datos real en los campos coincida. Para realizar un ataque, puedes especificar un tipo INTEGER en el valor fieldType, pero coloca datos más grandes y especifica un valor fieldLength que no se corresponde con el tamaño de los datos con el tipo INTEGER, lo que conducirá a la cola de los datos. del campo que se escribe más allá del búfer asignado. Como resultado de un desbordamiento controlado del búfer, el investigador pudo redefinir el puntero de retorno de la función y, utilizando técnicas de programación orientada al retorno (ROP - Return-Oriented Programming), lograr la ejecución de su código.

Cuando se utiliza la técnica ROP, el atacante no intenta colocar su código en la memoria, sino que opera sobre piezas de instrucciones de la máquina que ya están disponibles en las bibliotecas cargadas, finalizando con una instrucción de retorno de control (por regla general, estos son los extremos de las funciones de la biblioteca). . El trabajo del exploit se reduce a construir una cadena de llamadas a bloques similares ("gadgets") para obtener la funcionalidad deseada. Los gadgets utilizados en el exploit de OpenOffice eran código de la biblioteca libxml2 utilizada en OpenOffice, que, a diferencia del propio OpenOffice, se compiló sin los mecanismos de protección DEP (Prevención de ejecución de datos) y ASLR (Aleatorización del diseño del espacio de direcciones).

Los desarrolladores de OpenOffice fueron notificados del problema el 4 de mayo, después de lo cual se programó una divulgación pública de la vulnerabilidad para el 30 de agosto. Como la actualización de la rama estable no se completó en la fecha prevista, el investigador pospuso la divulgación de detalles hasta el 18 de septiembre, pero los desarrolladores de OpenOffice no lograron crear la versión 4.1.11 para esa fecha. Cabe destacar que durante la misma investigación, se identificó una vulnerabilidad similar en el código de soporte del formato DBF en Microsoft Office Access (CVE-2021–38646), cuyos detalles se revelarán más adelante. No se encontraron problemas en LibreOffice.

Fuente: opennet.ru

Añadir un comentario