Vulnerabilidad de RCE en la biblioteca ReportLab de Python  

ReportLab ha sido durante mucho tiempo una poderosa herramienta para crear archivos en formato de documento portátil (PDF) de Adobe y generar tablas y gráficos de datos en una variedad de formatos de mapas de bits y gráficos PDF.

Se hizo un descubrimiento intrigante en la biblioteca Python de ReportLab para la generación dinámica de archivos PDF a partir de la entrada HTML, dicha biblioteca alberga una vulnerabilidad parcheada previamente que conducía a la ejecución del código. Para un atacante encontrar una derivación a este parche allanaría el camino para el redescubrimiento de la ejecución del código. 

La vulnerabilidad  identificada como CVE-2023-33733 se clasifica con severidad ALTA y con un CVSS desconocido.

La vulnerabilidad hallada tiene implicaciones de gran alcance, ya que numerosas aplicaciones y bibliotecas utilizan ReportLab. La clave radica en la creación de una nueva clase llamada ‘Word’ que hereda de ‘str’. Cuando se pasa al ‘getattr’ personalizado, omite las comprobaciones, lo que permite el acceso a atributos confidenciales como ‘__code__’.

Para mitigar este problema, ReportLab implementó una zona de pruebas denominada ‘rl_safe_eval’.

Este “sandbox” fue diseñado para ejecutar de manera segura el código de la biblioteca y al mismo tiempo restringir el acceso a funciones y bibliotecas peligrosas que podrían conducir a la construcción de código Python malicioso.

Versiones afectadas

  • Todas las versiones.

Solución

  • Actualmente no existe ninguna actualización que cuente con algún parche de seguridad para esta amenaza.

Recomendación

  • Se recomienda a los usuarios que utilicen el sandbox mencionado para así poder ejecutar de manera segura el código de la biblioteca y esperar nuevas actualizaciones que erradiquen esta vulnerabilidad. 

Referencias