qiaomu-campus-resume

Pass

Audited by Gen Agent Trust Hub on Aug 17, 2026

Risk Level: SAFEPROMPT_INJECTIONCOMMAND_EXECUTION
Full Analysis
  • [INDIRECT_PROMPT_INJECTION]: The skill processes untrusted data from user-uploaded resumes and job descriptions which could contain malicious hidden instructions.
  • Ingestion points: The extract_resume.py script reads external PDF and DOCX files, while render_resume.py processes JSON data ledgers.
  • Boundary markers: The skill follows a strict restatement protocol in SKILL.md, requiring the agent to summarize all extracted facts and obtain explicit user confirmation (confirmation: confirmed) before rendering.
  • Capability inventory: The skill possesses the ability to execute shell commands via subprocess for document parsing and PDF generation.
  • Sanitization: All user-provided data is sanitized using html.escape (via the esc() helper in render_resume.py) before being interpolated into HTML templates.
  • [COMMAND_EXECUTION]: The skill executes local system binaries to perform its core functions.
  • Evidence: scripts/extract_resume.py calls pdftotext to extract text from resumes; scripts/render_resume.py calls headless browsers (Chrome/Edge/Chromium) to print HTML to PDF; scripts/validate_resume.py calls pdfinfo and pdffonts for file verification.
  • Risk Mitigation: These subprocess calls use list-based arguments rather than shell strings and are restricted to local file paths.
  • [DYNAMIC_EXECUTION]: The skill dynamically assembles HTML documents at runtime based on user data.
  • Evidence: Found in render_resume.py within the make_html function which constructs a full HTML string from data objects and CSS theme tokens.
  • Risk Mitigation: The skill uses predefined templates and mandatory escaping for all user-controlled variables, preventing HTML injection into the rendering context.
  • [DATA_EXPOSURE]: The skill manages personal resume data but implements protective measures to prevent accidental exposure of sensitive information.
  • Evidence: scripts/assess_interview.py contains a FORBIDDEN_PRIVATE_KEYS list including id_card, password, and token. It checks the fact ledger and blocks generation if these sensitive fields are detected.
Audit Metadata
Risk Level
SAFE
Analyzed
Aug 17, 2026, 08:39 AM
Security Audit — agent-trust-hub — qiaomu-campus-resume