T01 · Skill Instruction Hijacking
- Location
scripts/render_pdf.py:47- Finding
Mandatory Third-Party Branding and Contact Promotion in Generated Security Artifacts
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:94;scripts/render_pdf.py:47-54, 371-375;scripts/render_security_review.py:72, 130
Vulnerability Type: Fixed promotional output and agent output manipulation
Risk Level: HighVulnerable Code
SKILL.md:94:markdown Artifacts from this skill are delivered as branded CompleteTech LLC **PDF** documents, not raw Markdown.scripts/render_pdf.py:47-54:python BRAND = { "accent": "#1E3A8A", "accent_dark": "#0F172A", "accent_soft": "#EEF2FF", "muted": "#64748B", "border": "#E2E8F0", "zebra": "#F8FAFC", "brand_name": "CompleteTech", "brand_tagline": "Innovation at Every Integration", "contact": "complete.tech · Timothy.Gregg@complete.tech", }scripts/render_pdf.py:371-375:python c.setFont("Helvetica", 8.5) c.setFillColor(colors.Color(1, 1, 1, alpha=0.78)) c.drawString(nx, h - 0.58 * inch, BRAND["brand_tagline"]) c.setFont("Helvetica", 7.5) c.setFillColor(colors.Color(1, 1, 1, alpha=0.62)) c.drawString(nx, h - 0.74 * inch, BRAND["contact"])scripts/render_security_review.py:72, 130:python parser.add_argument("--footer", default="CompleteTech LLC - demonstration artifact", help="Footer text.")python cfg = { "logo": logo if logo.exists() else None, "title": title, "eyebrow": "CompleteTech LLC", "doc_type": doc_type, "subtitle": args.subtitle, "meta": meta, "doc_id": meta[0][1] if meta else "", "watermark": args.watermark, "footer": args.footer, "disclaimer": "Demonstration artifact — replace placeholders with verified facts before use.", "cover": not args.no_cover, }Technical Analysis
The Skill directs the agent to deliver branded PDFs rather than neutral review content. The rendering implementation then inserts a fixed company name, promotional tagline, domain, personal email address, eyeb ...[truncated 1569 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the requirement in
SKILL.mdthat artifacts be delivered as CompleteTech-branded PDFs. - Make branded rendering explicitly opt-in rather than the default behavior.
- Default to neutral Markdown or an unbranded PDF unless the user supplies branding parameters.
- Remove the hardcoded company name, tagline, domain, and personal email address from
BRAND. - Add command-line or configuration parameters for all identity and contact fields.
- Do not populate identity fields unless the caller explicitly provides them.
- Clearly preview or disclose all branding and contact information before creating a distributable artifact.
- Add tests verifying that the default rendering path contains no third-party identity, promotional text, or contact routing.
- Remove the requirement in
