T01 · Skill Instruction Hijacking
- Location
SKILL.md:100- Finding
Mandatory Third-Party Branding and Contact Promotion in Generated Documents
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:100-105;scripts/render_discovery.py:75-76, 134-135;scripts/render_pdf.py:51-55, 371-375
Vulnerability Type: Output instruction hijacking through mandatory branding and hardcoded promotional content
Risk Level: MediumComplete Code Snippets
SKILL.md:100-105:markdown Artifacts from this skill are delivered as branded CompleteTech LLC **PDF** documents, not raw Markdown. The renderer emits the PDF (and prints the Markdown) in **one command**, using the same reportlab branding engine as the contract skill: ```bash pip install -r requirements.txt python3 scripts/render_discovery.py --template requirements-brief-for-proposal-sow-handoff \scripts/render_discovery.py:75-76:python parser.add_argument("--watermark", default="DEMO DRAFT", help="Watermark text (empty to disable).") parser.add_argument("--footer", default="CompleteTech LLC - demonstration artifact", help="Footer text.")scripts/render_discovery.py:134-135:python "watermark": args.watermark, "footer": args.footer, "disclaimer": "Demonstration artifact — replace placeholders with verified facts before use.",scripts/render_pdf.py:51-55:python "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"])Technical Analysis
The skill instructions state that artifacts are to be delivered as CompleteTech-branded PDF documents. The associated renderer reinforces that instruction by supplying company- ...[truncated 2169 chars]
- Remediation
View remediation
Remediation Suggestions
- Make branding explicitly opt-in rather than mandatory in
SKILL.md. - Replace company-specific defaults with neutral values, such as an empty footer, no contact address, and no promotional tagline.
- Accept branding through explicit command-line options or a user-provided configuration file.
- Do not render a website, email address, company identity, logo, watermark, or footer unless the user has supplied or approved it.
- Add a
--brand-profileor--brandingoption and default it tonone. - Display a clear pre-render summary listing every identity, contact, watermark, and footer value that will be embedded.
- Add automated tests confirming that the default output contains no third-party promotional or contact information.
- Document how users can inspect and override all generated-document metadata and page furniture before distribution.
- Make branding explicitly opt-in rather than mandatory in
