
Notas de investigación que documentan CVE-2024-30350, una lectura fuera de límites en el manejo de anotaciones de Foxit PDF Reader, abarcando el triaje, la divulgación y las recomendaciones defensivas.
CVE-2024-30350 es una vulnerabilidad de divulgación de información por lectura fuera de límites en Foxit PDF Reader. El problema fue publicado por Trend Micro Zero Day Initiative como ZDI-24-333 y rastreado antes de su divulgación como ZDI-CAN-22708.
El aviso público describe el área vulnerable como el manejo de objetos Annotation por parte de Foxit PDF Reader. Un PDF manipulado puede hacer que la aplicación lea más allá del final de un búfer asignado. La explotación requiere interacción del usuario, como abrir un archivo PDF malicioso o visitar una página que lo entregue. El impacto inmediato es la divulgación de información sensible, y el aviso señala que la condición puede ser útil al encadenarse con otras vulnerabilidades.
Este repositorio documenta la vulnerabilidad, el flujo de trabajo de investigación, el proceso de triaje y las notas de divulgación. Intencionalmente no incluye una prueba de concepto armada.
| Campo | Valor |
|---|
| CVE | CVE-2024-30350 |
| Aviso de ZDI | ZDI-24-333 |
| Caso de ZDI | ZDI-CAN-22708 |
| Producto | Foxit PDF Reader |
| Proveedor | Foxit |
| Componente | Manejo de objetos Annotation |
| Debilidad | Lectura fuera de límites |
| CWE | CWE-125 |
| Impacto | Divulgación de información |
| CVSS | 3.3 |
| Vector | CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N |
| Fecha de reporte al proveedor | 2023-12-20 |
| Fecha del aviso público | 2024-03-28 |
| Fecha de actualización del aviso | 2024-07-01 |
| Corregido por | Actualizaciones de seguridad de Foxit PDF Reader 2024.1 y Foxit PDF Editor 2024.1 |
Según el boletín de seguridad de Foxit del 5 de marzo de 2024, las versiones de Windows afectadas incluían Foxit PDF Reader 2023.3.0.23028 y anteriores, y múltiples líneas de versión de Foxit PDF Editor hasta las versiones listadas en el boletín.
Las anotaciones PDF se representan como diccionarios adjuntos a las páginas a través del arreglo /Annots de la página. Un lector necesita analizar el diccionario de anotación, resolver valores directos e indirectos, normalizar datos de geometría y apariencia, y conectar el resultado con las rutas de renderizado, selección, edición, JavaScript y accesibilidad.
La clase de error de CVE-2024-30350 es un fallo de validación de límites en ese flujo de análisis de anotaciones. Un objeto de anotación malformado podría hacer que Foxit PDF Reader confiara en una longitud derivada o una forma de objeto que ya no coincidía con el búfer subyacente. Bajo la ruta vulnerable, el programa podía leer más allá del límite del objeto asignado. El modo de fallo observado fue una violación de acceso durante el manejo de anotaciones; con la memoria organizada de manera diferente, el mismo primitivo podría exponer memoria adyacente del proceso.
El problema no era una vulnerabilidad de red de un solo clic. El atacante necesitaba convencer al usuario objetivo de abrir un documento manipulado o llegar a una página de entrega que provocara la apertura del documento. Eso se refleja en el requisito de interacción del usuario del CVSS.
La investigación original comenzó como una auditoría enfocada en familias complejas de objetos PDF en lugar de como una ejecución general de fuzzing de formato de archivo. Se seleccionó el manejo de anotaciones porque las anotaciones se encuentran en una densa intersección de lógica del analizador, comportamiento de la interfaz de usuario, exposición a JavaScript y actualizaciones incrementales del documento.
El corpus inicial mezclaba documentos ordinarios con páginas sintéticas que contenían diccionarios de anotación de alta varianza. El generador variaba longitudes de arreglos, indirección de objetos, valores nulos, tipos primitivos inesperados, referencias recursivas y combinaciones de flujos de apariencia. Las muestras más útiles no eran completamente aleatorias. Eran lo suficientemente conscientes de la gramática como para alcanzar el código de normalización de anotaciones, pero aún lo suficientemente malformadas como para probar suposiciones en el analizador nativo.
La primera señal fue un fallo que solo se reproducía cuando una página contenía una estructura de anotación malformada específica y la anotación era forzada a través de la ruta de manejo interactivo. Abrir el documento era suficiente para analizar la página, pero la reproducción confiable mejoraba cuando se actualizaba la vista, se hacía zoom en la página o el árbol de anotaciones era tocado por el código de selección o renderizado.
La depuración redujo el problema a una lectura más allá del final de una asignación de heap durante el procesamiento del objeto de anotación. El fallo no se parecía a una desreferencia nula. La instrucción fallida consumía memoria adyacente a un búfer relacionado con anotaciones, y las relaciones de tamaño en la muestra minimizada sugerían una discrepancia entre un conteo lógico analizado y el almacenamiento real disponible para ese objeto.
La muestra fue minimizada eliminando repetidamente objetos PDF no relacionados, recursos de página, fuentes, metadatos y flujos hasta que solo permanecieron el árbol de páginas, la página objetivo y la estructura de anotación. El archivo reducido preservó la misma firma de fallo, lo que lo hizo adecuado para la divulgación coordinada.
Después del triaje, el hallazgo fue enviado a través de Zero Day Initiative. La fecha de reporte al proveedor en el aviso público es 2023-12-20. El aviso coordinado fue publicado el 2024-03-28, y Foxit abordó el problema en la línea de actualización 2024.1.
El impacto directo es la divulgación de memoria del proceso de Foxit PDF Reader. De forma aislada, eso generalmente significa un impacto de confidencialidad limitado. Sin embargo, en una cadena de explotación más completa, una lectura fuera de límites puede ser valiosa para filtrar contenidos del heap, punteros de objetos, diseño de asignación u otro estado del proceso necesario para hacer confiable una vulnerabilidad separada de corrupción de memoria.
Esto explica la puntuación CVSS baja de forma independiente mientras que aún hace que el problema sea significativo para el endurecimiento de cadenas de explotación.
Los usuarios deben actualizar Foxit PDF Reader y Foxit PDF Editor a versiones corregidas. Las organizaciones que manejan PDFs no confiables también deben mantener habilitados Protected View, Safe Reading Mode, controles de reputación de archivos, filtrado de adjuntos y mitigaciones de explotación en endpoints.
Para los desarrolladores de analizadores, la lección principal es que los diccionarios de anotación deben tratarse como entrada estructurada no confiable incluso cuando el PDF circundante es sintácticamente válido. Las longitudes derivadas, los arreglos normalizados, los objetos indirectos resueltos y las representaciones de objetos en caché deben validarse en cada límite entre el analizador, el renderizador, el scripting y el código de la interfaz de usuario.
| Ruta | Propósito |
|---|---|
README.md | Descripción general principal de la vulnerabilidad |
docs/discovery-process.md | Narrativa de investigación de extremo a extremo |
docs/advisory-notes.md | Hechos y referencias del aviso público |
docs/triage-checklist.md | Lista de verificación general utilizada para el triaje de fallos de lectores de PDF |