md-to-pdf
Pass
Audited by Gen Agent Trust Hub on Sep 14, 2026
Risk Level: SAFECOMMAND_EXECUTIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTIONEXTERNAL_DOWNLOADS
Full Analysis
- [COMMAND_EXECUTION]: The script
scripts/md_to_pdf.pyusessubprocess.check_callwithin thecheck_dependenciesfunction to automatically install missing Python packages usingpip. While the packages listed (reportlab, markdown, beautifulsoup4, html5lib, tqdm) are well-known, executing installation commands at runtime is a sensitive capability that modifies the execution environment. - [DYNAMIC_EXECUTION]: The script uses the
__import__function inscripts/md_to_pdf.pyto dynamically check for the presence of required modules. Although the module names are sourced from a hardcoded dictionary, dynamic loading is a pattern that can be misused for obfuscation or loading arbitrary code. - [INDIRECT_PROMPT_INJECTION]: The skill processes untrusted Markdown content and identifies potential injection surfaces:
- Ingestion points: Markdown files processed by
scripts/md_to_pdf.py. - Boundary markers: None identified in the script or instructions.
- Capability inventory: File reading via
open(), network requests viaurllib.request.urlopen, command execution viasubprocess.check_call, and file writing viadoc.build(). - Sanitization: The script uses
BeautifulSoupto parse HTML generated from Markdown, but the_load_imagefunction downloads images from any URL provided in thesrcattribute. This creates a Server-Side Request Forgery (SSRF) surface where a malicious Markdown file could force the agent to probe internal network resources or cloud metadata services (e.g., 169.254.169.254). - [EXTERNAL_DOWNLOADS]: The
_load_imagefunction inscripts/md_to_pdf.pyfetches image content from external HTTP/HTTPS URLs and writes them to temporary local files. This behavior is documented in the skill features but represents an unvalidated download of external data.
Audit Metadata