Vulnerabilidad crítica en una popular biblioteca PHP

Un hacker ético del Instituto Internacional de Seguridad Cibernética reporta el hallazgo de una vulnerabilidad de seguridad crítica en TCPDF, una de las bibliotecas PHP más empleadas para generar archivos PDF.

Acorde al hacker ético, la vulnerabilidad podría ser explotada por usuarios maliciosos para realizar una ejecución remota de código en páginas y aplicaciones web que empleen esta biblioteca, posteriormente los atacantes podrían ejecutar código malicioso y tomar control de los sistemas comprometidos.

Podría decirse que esta vulnerabilidad es una variante de un descubrimiento anterior. La vulnerabilidad original fue encontrada por el hacker ético Sam Thomas, quien diseñó un experimento capaz de demostrar una vulnerabilidad de deserialización que impactaba a las aplicaciones PHP hace aproximadamente un año.

Según los reportes, la nueva variante de la vulnerabilidad puede ser explotada de dos formas:

  • Cuando los sitios web permiten que la información del usuario forme parte del proceso de generación del archivo PDF
  • Cuando los sitios web tienen vulnerabilidades XSS, donde un atacante es capaz de inyectar código malicioso en el código fuente HTML que será enviado a la biblioteca TCPDF para ser convertido en PDF

El proceso de ataque es verdaderamente complejo y requiere de conocimientos de codificación avanzados para explotar la vulnerabilidad. Acorde a los expertos, un exploit de deserialización es muy difícil de encontrar y pueden traer consecuencias catastróficas para lenguajes de programación como Ruby, Java y PHP.

Los desarrolladores de TCPDF fueron informados sobre la vulnerabilidad (rastreada como CVE-2018-17057) desde agosto del año pasado. Un mes después, se lanzó TCPDF 6.2.20 para corregir los errores reportados. No obstante, lo más recomendable es que los usuarios actualicen al menos a la versión 6.2.22, debido a que las correcciones fueron inhabilitadas al tratar de corregir otra vulnerabilidad.

TCPDF es una de las bibliotecas PHP más populares de la actualidad, siendo utilizada por múltiples usuarios como operadores de sitios web independientes, sistemas de administración de contenido, intranets, aplicaciones web relacionadas con los archivos PDF, entre otros usos.

Esta es una nueva muestra de que la corrección de vulnerabilidades no es una tarea sencilla; en algunos casos puede ser necesario reescribir grandes cadenas de código, no sólo algunos fragmentos.