Created attachment 26662 [details] The archive includes both the images described and the pdf generated. Hello team, When generating a password-protected PDF using the latest version of the tool on Windows 10, I noticed that the full command-line input, including the plaintext password, is embedded at the beginning of the generated PDF file. This allows anyone with access to the PDF to retrieve the password simply by running a command like "type" (Windows) or "cat" (Linux/macOS) on the file. Steps to Reproduce: 1. Download and install the latest version of the tool from GitHub: https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10050/gs10050w64.exe 2. On a Windows 10 machine I run the folowing command in cmd to create a protected pdf file. "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" (Image1.png). 3. The test.pdf file was successfully created. Inspecting the file using "type test.pdf", revealed the full command used to generate the PDF including the password (Image2.png). Expected Behavior: The PDF should not contain sensitive information such as the password used during encryption. Actual Behavior: The output PDF embeds the entire command-line invocation including the plaintext password at the beginning of the file. Enviroment Details: Tool Version: 10.05.0 Operating System: Windows 10 Pro Version 22H2 (OS Build 19045.5737) Architecture: x64 This issue may qualify for a CVE, as it involves unintended disclosure of sensitive information (the password used for PDF encryption) within the resulting file. Please consider assigning a CVE ID. Kind Regards, Vasileios Flengas
<sigh> It's caused by using '#' instead of '=', which is defeating the parameter scanning. I'll look at it on Monday.
I've fixed this, but the commit isn't public. These days we keep security commits in a private repository until they are released because, being open source, as soon as we push them to our regular repository they are, in effect, public. Hence the 'in progress' status, it'll remain there until we do a release with the code included.
I've chatted with my colleague who normally raises CVEs and, given that MITRE have announced funding for the next year, we're going to go ahead and request a CVE. Our most recent request keeps being rebuffed so we'll just have to see what happens with another new one.
CVE-2025-48708