Envío de registros, alertas y datos de telemetría a través de un diodo de datos

Descubre cómo
Utilizamos inteligencia artificial para traducir el sitio web y, aunque nos esforzamos por garantizar la precisión, es posible que las traducciones no sean siempre 100 % exactas. Agradecemos tu comprensión.

Cómo detectar y solucionar esta vulnerabilidad habitual de Foxit PDF Reader

Por OPSWAT
Comparte esta publicación

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.

Retratos de Thai To, de la Universidad de Ciencias de Ho Chi Minh, y de Tai Tran, de la Universidad de Tecnología de la Información, tomados durante un evento profesional
Los estudiantes participaron en el programa OPSWAT .

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.

Captura de pantalla de un documento PDF abierto en un lector, en la que se muestra un artículo sobre «Colour Curation» junto a imágenes de portadas de libros de colores vivos

CVE-2020-14425

Descripción

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.

Repercusión

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.

Captura de pantalla que muestra una tabla de gravedad y métricas del CVSS (Sistema Común de Puntuación de Vulnerabilidades) con una puntuación base alta de 7,8 para una vulnerabilidad, procedente de la Base de Datos Nacional de Vulnerabilidades (NVD) del NIST

Análisis de CVE-2020-14425

Estructura de un archivo PDF

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.
Diagrama que representa un formato de documento estructurado con encabezado, cuerpo y pie de página, vinculado a un diagrama jerárquico de un nodo raíz que se ramifica en nodos intermedios

Dado que el cuerpo contiene los elementos sensibles de los archivos PDF, los ataques suelen centrarse en inyectar código malicioso en este componente.

Posibles amenazas asociadas a los archivos PDF

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.

Cómo funciona CVE-2020-14425

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.

Captura de pantalla de la interfaz de Foxit PhantomPDF, en la que se muestran las barras de herramientas de información sobre la licencia y las actualizaciones, con una consola de JavaScript abierta en la que se está ejecutando un comando

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.

Captura de pantalla de una consola de JavaScript en la que se ejecuta un comando para abrir una ruta de archivo, lo que activa una advertencia de seguridad sobre la ejecución o el guardado de «calc.exe», una aplicación de calculadora habitual de Windows

Aprovechamiento de vulnerabilidades

Escenario de ataque
Diagrama de flujo que detalla un ciberataque a través de un archivo ZIP que contiene código malicioso, su distribución y el compromiso de la víctima

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.

Captura de pantalla del código de un archivo PDF que muestra código JavaScript malicioso que genera dinámicamente una ruta para ejecutar un archivo ejecutable llamado «payload.exe»
Captura de pantalla de un editor de JavaScript para PDF en la que se muestra el código para crear dinámicamente una ruta y ejecutar una carga útil, abierta en la interfaz de un programa de visualización de PDF

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.

Captura de pantalla de la interfaz de un ordenador en la que se muestra una ventana de correo electrónico y las propiedades de un archivo PDF cifrado, incluyendo detalles como el tamaño, el tipo y la fecha de creación

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.

Captura de pantalla de una hoja de cálculo de Excel con datos salariales y un terminal de Kali Linux en el que se muestra información del sistema

Remediación

MetaDefender Endpoint MetaDefender Core conjuntamente para prevenir estos ataques.

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.

Captura de pantalla de la interfaz OPSWAT en la que se muestran los resultados del análisis de un documento PDF titulado «Salary Reference.pdf», en la que se indica que no se han detectado amenazas, se ha eliminado un elemento y no se han encontrado vulnerabilidades
Archivo original antes de aplicar la tecnología Deep CDR™
Archivo desinfectado tras ser escaneado con la tecnología Deep CDR™
Captura de pantalla deEndpoint  OPSWAT MetaDefender Endpoint en la que se muestran los detalles de la vulnerabilidad de Foxit Reader, con una lista de varios CVE junto con sus puntuaciones CVSS y fechas correspondientes

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.

¡Mantente al día con OPSWAT!

Regístrate hoy mismo para recibir las últimas novedades de la empresa, historias, información sobre eventos y mucho más.