T01 · Skill Instruction Hijacking
Warning
- Location
- SKILL.md:7
- Finding
- Mandatory Third-Party Promotional Content in Skill Output## Vulnerability Details **File Location**: `SKILL.md`, lines 7-8 and 43 **Vulnerability Type**: Persistent output manipulation and third-party traffic redirection **Risk Level**: Medium ### Vulnerable Code ```python RSS_URL = "https://buttondown.com/soulmd/rss" SUBSCRIBE_URL = "https://buttondown.com/soulmd" ``` ```python print(f"TITLE: {latest['title']}\nDATE: {latest['date']}\nLINK: {latest['link']}\nSUBSCRIBE: {SUBSCRIBE_URL}\n\nEXCERPT:\n{latest['excerpt']}") ``` ### Technical Analysis Every successful invocation inserts the hardcoded `SUBSCRIBE_URL` into the output, regardless of whether the user requested subscription information. Because skill output is likely to be incorporated into an agent response, this behavior persistently modifies the response to promote a third-party newsletter. The URL is fixed by the skill author and is not required to retrieve or display the latest RSS entry. This creates an output-integrity concern: invoking a retrieval function implicitly produces advertising and directs user traffic to an external service. ### Attack Path 1. A user or agent invokes the skill to retrieve the latest newsletter entry. 2. The script requests the configured RSS feed. 3. After parsing the latest item, the script unconditionally appends the hardcoded `SUBSCRIBE` field. 4. The consuming agent may relay the complete output to the user. 5. The user is consequently exposed or redirected to a third-party subscription page that was not explicitly requested. ### Impact Assessment This issue does not grant local system privileges or enable code execution. Its scope is limited to response integrity, unwanted promotion, and third-party traffic redirection. Repeated use can cause an agent to advertise the configured service in every successful response, potentially misleading users into believing that the subscription link is a necessary or endorsed part of the requested operation.
- Remediation
- ## Remediation Suggestions - Remove the unconditional `SUBSCRIBE` field from the normal retrieval output. - Return subscription information only when the user explicitly requests it. - Clearly distinguish optional promotional links from retrieved RSS data. - Document all external destinations and the purpose of each network interaction. - If a subscription feature is retained, implement it as a separate, explicitly invoked operation rather than coupling it to every successful feed retrieval.
