
Falta de sanitização de argumentos levando ao vazamento de senhas em versões do Ghostscript PDF até 10.05.0.
Uma vulnerabilidade no Artifex Ghostscript anterior à versão 10.05.1 faz com que a senha em texto simples usada para proteger um arquivo PDF seja incorporada na saída. O problema deve-se à falta de sanitização de argumentos em gs_lib_ctx_stash_sanitized_arg (base/gslibctx.c), particularmente ao lidar com caracteres #.
Ao gerar um PDF protegido por senha usando argumentos de linha de comando como -sUserPassword ou -sOwnerPassword, toda a invocação, incluindo senhas, é armazenada em texto claro no início do PDF gerado. Qualquer pessoa com acesso ao arquivo pode recuperar a senha usando ferramentas simples como type (no Windows) ou cat (no Linux/macOS).
Instale o Ghostscript versão 10.05.0 ou anterior
https://github.com/ArtifexSoftware/ghostpdl-downloads
Gere um PDF protegido por senha usando um 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
Inspecione o PDF gerado:
type C:\Users\Admin\Downloads\test.pdf
Você verá a string completa da linha de comando, incluindo as senhas em texto simples, incorporada no início do arquivo.