Nos complace presentar una serie de entradas de blog sobre análisis técnico centradas en diversas vulnerabilidades y exposiciones comunes (CVE), identificadas y solucionadas gracias a nuestras tecnologías avanzadas de detección de amenazas. Toda la investigación corre a cargo de los estudiantes de posgrado que participan en el programa de becas OPSWAT , puesto en marcha en septiembre de 2023.
En este blog, explicaremos la vulnerabilidad CVE-2020-14425 de Foxit PDF Reader y cómo pueden protegerse las organizaciones para evitar que se aproveche esta vulnerabilidad.

Foxit PDF Reader
Foxit PDF Reader es una herramienta para archivos PDF desarrollada por Foxit Software que ofrece una amplia gama de funciones para crear, visualizar, editar y firmar digitalmente documentos PDF. La versión gratuita de Foxit Reader ha ganado popularidad y cuenta con más de 700 millones de usuarios.
Para mejorar sus capacidades y flexibilidad, Foxit PDF Reader admite extensiones de JavaScript, lo que ofrece a los usuarios opciones de personalización; sin embargo, esto también supone un riesgo potencial para la seguridad, ya que convierte al software en un objetivo para los atacantes.

CVE-2020-14425
Una vulnerabilidad en Foxit PDF Reader anterior a la versión 10.0 permite a los atacantes ejecutar código de forma remota en el dispositivo de la víctima al abrir un archivo PDF especialmente diseñado. Esta vulnerabilidad se debe a una deficiencia de seguridad en la función JavaScript «app.opencPDFWebPage». Si Foxit Reader está configurado para utilizar el navegador predeterminado al abrir las URL incrustadas en el archivo PDF, el código malicioso incluido en el archivo ejecutable podría ejecutarse sin que se muestre un cuadro de diálogo de advertencia de seguridad.
Un archivo PDF creado para aprovechar esta vulnerabilidad (CVE) puede distribuirse a través de una campaña de phishing por correo electrónico o de enlaces maliciosos incrustados. Si el usuario abre el archivo PDF malicioso utilizando la versión vulnerable de Foxit Reader, el atacante podría hacerse con el control del dispositivo de la víctima mediante la ejecución remota de código.

Análisis de CVE-2020-14425
Los archivos PDF se organizan mediante una estructura en árbol, compuesta por una sección de encabezado, una sección de cuerpo, una tabla de referencias cruzadas y una sección de cierre.
- El encabezado comienza con %PDF-1.x, lo que indica la versión del formato PDF. En la actualidad, las versiones del formato van de la 1.0 a la 1.7. La sección del encabezado también incluye metadatos del documento, como el autor, la fecha de creación y otra información relevante.
- El cuerpo comprende la totalidad del contenido del archivo PDF, estructurado en objetos como páginas, secuencias de texto, fuentes, formularios, código JavaScript y otros elementos.
- La tabla de referencias cruzadas (tabla Xref) contiene la referencia y la posición en bytes de todos los objetos del archivo PDF. Permite acceder rápidamente a los objetos sin tener que leer todo el archivo.
- El contenedor almacena información adicional imprescindible para localizar la tabla de referencias cruzadas, como el número total de entradas de dicha tabla y el puntero a su inicio.

Dado que el cuerpo contiene los elementos sensibles de los archivos PDF, los ataques suelen centrarse en inyectar código malicioso en este componente.
Los archivos PDF se han convertido en un objetivo para los atacantes debido a su gran difusión. Dado que los archivos PDF pueden contener código JavaScript, pueden utilizarse para llevar a cabo diversos ataques cuando se abren en un navegador, como la denegación de servicio (DoS), la redirección abierta o el cross-site scripting (XSS).
Además, los atacantes pueden recurrir a técnicas explotables como «Use After Free» (UAF) y «Buffer Overflow» (BoF). También pueden aprovechar los fallos en la gestión de errores del software para llevar a cabo un ataque de ejecución remota de código (RCE) en el sistema de la víctima. Como consecuencia, un archivo PDF podría contener ransomware, que cifraría los datos del equipo y exigiría un rescate considerable para su recuperación, o bien los atacantes podrían hacerse con el control total del equipo de la víctima.
En Foxit Reader, cuando se incrusta la URL de una página web, los usuarios tienen dos opciones de visualización: mostrar la página web dentro de Foxit Reader o utilizar el navegador predeterminado del dispositivo del usuario. En la configuración predeterminada, Foxit Reader accede internamente a la página web incrustada. Dentro del contenido del PDF, para solicitar la apertura de una página web, Foxit Reader utiliza la función OpencPDFWebPage, una API de JavaScript API para iniciar la apertura de una URL de página web incrustada en el PDF.

Sin embargo, existe una vulnerabilidad relacionada con una validación incorrecta de entradas en esta API, que permite a los atacantes introducir una ruta de archivo local en la función opencPDFWebPage. En consecuencia, la función podría abrir el archivo malicioso con la ruta indicada y ejecutar dicho archivo ejecutable. Esta falla permite a los atacantes ejecutar la carga útil almacenada en el equipo de la víctima y obtener ejecución remota de código.
La opción de abrir la página web en Foxit Reader, un requisito para IE 10 o versiones posteriores, activa un cuadro de diálogo de advertencia durante un intento de explotación, mientras que, si la opción está configurada para utilizar el navegador predeterminado, se omite la advertencia de seguridad.

Aprovechamiento de vulnerabilidades

Dada la vulnerabilidad detectada, un posible vector de ataque consiste en un ataque de phishing que utiliza el archivo PDF como cargador para ejecutar una carga útil oculta adjunta. En este escenario, el autor del ataque envía a la víctima un archivo ZIP que contiene un archivo PDF y un archivo ejecutable oculto, con la intención de engañarla para que abra el documento. La vulnerabilidad CVE de Foxit Reader permite entonces que el código JavaScript incrustado ejecute el archivo ejecutable oculto, estableciendo una conexión de shell inverso con el equipo del atacante.
Para inyectar código JavaScript en el archivo PDF, el atacante puede modificar directamente el contenido del PDF o utilizar herramientas como Foxit Phantom PDF. El código malicioso define la ruta del archivo malicioso y ejecuta el código dañino mediante la función opencPDFWebPage.


Tras preparar los archivos PDF maliciosos, el atacante oculta el archivo ejecutable y comprime la carpeta en un archivo ZIP. Para eludir las medidas de seguridad de los programas antivirus, el atacante puede cifrar el archivo ZIP con una contraseña antes de enviárselo a la víctima.

Si la víctima extrae y abre el archivo PDF malicioso con una versión vulnerable de Foxit Reader, se ejecutará el código malicioso incrustado en el archivo ejecutable, lo que permitirá al atacante comprometer el dispositivo de la víctima a través de un shell inverso.

Remediación
Multiscanning de Metadefender Core archivos maliciosos comprimidos con contraseña, lo que permite a los administradores identificar con precisión estas amenazas. Gracias a la integración de más de 30 motores antivirus combinados, la tasa de detección de malware alcanza más del 99,99 %. Además, gracias a la tecnología Deep CDR™ (Content Disarm and Reconstruction) integrada, Metadefender Core eliminar eficazmente el código JavaScript potencialmente malicioso y regenerar archivos desinfectados y seguros para su uso.




Además, MetaDefender Endpoint detectar versiones vulnerables de aplicaciones y actualizarlas automáticamente con los parches más recientes, lo que mejora la seguridad de los dispositivos frente a posibles amenazas futuras.
