
Falta de sanitización de argumentos que provoca filtración de contraseñas en versiones de Ghostscript PDF hasta la 10.05.0.
Una vulnerabilidad en Artifex Ghostscript anterior a la versión 10.05.1 provoca que la contraseña en texto plano utilizada para proteger un archivo PDF se incruste en la salida. El problema se debe a la falta de sanitización de argumentos en gs_lib_ctx_stash_sanitized_arg (base/gslibctx.c), particularmente al manejar caracteres #.
Al generar un PDF protegido con contraseña usando argumentos de línea de comandos como -sUserPassword o -sOwnerPassword, toda la invocación, incluyendo las contraseñas, se almacena en texto plano al inicio del PDF generado. Cualquier persona con acceso al archivo puede recuperar la contraseña usando herramientas simples como type (en Windows) o cat (en Linux/macOS).
Instala Ghostscript versión 10.05.0 o anterior
https://github.com/ArtifexSoftware/ghostpdl-downloads
Genera un PDF protegido con contraseña usando un comando como:
gswin64.exe -dDisplayFormat=198788 -dDisplayResolution=96 -dCompatibilityLevel#1.4 -sUserPassword#123456789 -sOwnerPassword#123456789 -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutputFile#C:\Users\Admin\Downloads\test.pdf
Inspecciona el PDF generado:
type C:\Users\Admin\Downloads\test.pdf
Verás la cadena completa de línea de comandos, incluyendo las contraseñas en texto plano, incrustada al inicio del archivo.