pdf-creator
Pass
Audited by Gen Agent Trust Hub on Oct 23, 2026
Risk Level: SAFECOMMAND_EXECUTIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [COMMAND_EXECUTION]: The skill utilizes
subprocess.runandsubprocess.Popento manage external binaries for its core functionality. These includepandocfor document conversion,google-chromefor high-fidelity PDF rendering, and thepoppler-utilssuite (pdftoppm,pdftotext,pdfinfo) for generating visual previews and performing typography linting. The commands are constructed using list-based arguments, which is a secure practice that prevents shell injection vulnerabilities. - [DYNAMIC_EXECUTION]: On macOS systems, the core script dynamically modifies the
DYLD_LIBRARY_PATHenvironment variable to ensure that theweasyprintlibrary can locate its required dependencies in Homebrew directories. Furthermore, internal test scripts demonstrate dynamic code execution patterns, such as modifyingsys.pathor assembling Python commands for execution viasubprocessto verify rendering logic. - [INDIRECT_PROMPT_INJECTION]: The skill processes external Markdown content and renders it through an HTML-to-PDF pipeline. This workflow creates an inherent attack surface for indirect prompt injection if malicious HTML or JavaScript is embedded in the source Markdown files and processed by the rendering backends without strict sandboxing.
- Ingestion points: Markdown files provided by the user are read and processed in
scripts/md_to_pdf.pyandscripts/batch_convert.py. - Boundary markers: The skill does not employ specific delimiters or "ignore instructions" markers to isolate processed data from the agent's internal logic.
- Capability inventory: Across its scripts, the skill has the capability to perform shell command execution, file system operations, and potentially network requests if the Chrome backend is triggered to load remote assets.
- Sanitization: The skill relies on the standard parsing behavior of
pandocand does not apply additional sanitization or filtering to the HTML content before it is passed to the rendering engines.
Audit Metadata