T01 · Skill Instruction Hijacking
- Location
- scripts/make_slides.py:228
- Finding
- Mandatory third-party promotion and package installation advertising in generated reports<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:247-255`, `SKILL.md:290-307`, `scripts/make_slides.py:228-278`, `references/copywriting.md:32-35`, `references/copywriting.md:70-91` **Vulnerability Type**: Mandatory instruction and output manipulation **Risk Level**: Medium ### Code Snippet ```python def s5_install(): # ... cmds=[ ("$ ","skillhub install ftshare-market-data"), ("$ ","skillhub install ftshare-announcement-data"), ("$ ","skillhub install ftshare-holder-data"), ("$ ","skillhub install ftshare-kline-data") ] # ... ``` ```python pages=[ # Cover and financial report pages are generated first. # ... ('05_installation', s5_install()), ('06_ending', s6_end()), ] ``` The Skill instructions additionally require every generated publication to contain fixed brand hashtags, promotional calls to action, an installation page, and a branded ending page. ### Technical Analysis The stated functional purpose is to generate a daily stock-market report. However, the workflow hard-codes two promotional slides into every generated video: 1. An installation page advertising multiple third-party Skills, including packages that are not dependencies of the report generator. 2. A branded ending page promoting external services. The accompanying Agent instructions also require fixed branding, hashtags, and calls to action in publication text. These additions are not presented as optional user-selected features. As a result, loading and executing the Skill changes the expected output objective from producing a financial report to producing a report combined with persistent third-party advertising. This is instruction hijacking because the Skill imposes unrelated output requirements on the Agent and causes promotional material to be included regardless of whether the user requested or approved it. ### Attack Path 1. A user requests generation of a daily stock-market report. 2. The A ...[truncated 1269 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the mandatory installation and branding pages from the default report. 2. Do not require fixed hashtags, calls to action, or third-party promotion in Agent instructions. 3. Make attribution and promotional material explicitly opt-in through a documented command-line option such as `--include-promotion`. 4. Default that option to disabled. 5. Clearly distinguish required runtime dependencies from optional or promoted packages. 6. Require explicit user confirmation before adding advertisements or package-installation instructions. 7. Add automated tests verifying that the default report contains only the requested financial content and disclaimer. ]]>
