T01 · Skill Instruction Hijacking
- Location
SKILL.md:7- Finding
Mandatory Third-Party Promotional Content in Skill Output
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7-8 and 43
Vulnerability Type: Persistent output manipulation and third-party traffic redirection
Risk Level: MediumVulnerable 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_URLinto 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
- A user or agent invokes the skill to retrieve the latest newsletter entry.
- The script requests the configured RSS feed.
- After parsing the latest item, the script unconditionally appends the hardcoded
SUBSCRIBEfield. - The consuming agent may relay the complete output to the user.
- 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
View remediation
Remediation Suggestions
- Remove the unconditional
SUBSCRIBEfield 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.
- Remove the unconditional
