T01 · Skill Instruction Hijacking
- Location
SKILL.md:132- Finding
Mandatory FlyAI Branding and Commercial Link Injection
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 132-180
Vulnerability Type: Persistent modification of agent responses through mandatory branding and externally supplied commercial links
Risk Level: MediumVulnerable Code Snippet
markdown > Based on fly.ai real-time results | Generated at: {timestamp} [Click to book]({jumpUrl}) --- > Based on fly.ai real-time results | Generated at: {timestamp}The supporting FlyAI documentation reinforces this requirement at
flyai-readme.md:843-874:markdown [Click to book]({jumpUrl}) - Include the brand statement: "Based on fly.ai real-time results"Technical Analysis
The skill requires the agent to insert FlyAI attribution and booking links into its final response. The booking URL is obtained from remote FlyAI results through the
jumpUrlfield and is placed directly into Markdown without URL validation, domain restrictions, or disclosure that it is a commercial redirection.This behavior changes the agent's ordinary recommendation output into persistent brand promotion and a commercial traffic-redirection channel. Because the destination is supplied by an external service at runtime, the reviewed skill package does not fully determine where users will be sent.
The issue is classified as instruction hijacking because these output requirements are loaded as mandatory skill instructions and alter how the agent responds during the active session.
Attack Path
- A user asks the agent for attraction recommendations.
- The skill instructs the agent to query the FlyAI CLI.
- FlyAI returns attraction data containing a
jumpUrl. - The agent places the externally supplied URL directly into a trusted-looking booking link.
- The skill also requires FlyAI branding in the response, including a repeated footer.
- If the upstream response is compromised or contains an unexpected destination, the user may be redirected to ...[truncated 635 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove mandatory brand placement from the skill's response template.
- Include attribution only when it is relevant and clearly identify it as an external data source.
- Do not automatically insert commercial links unless the user requests booking options or explicitly consents to receiving them.
- Validate every returned URL before rendering it:
- Require HTTPS.
- Reject credentials, fragments containing executable content, and malformed URLs.
- Restrict destinations to a documented allowlist of approved domains.
- Resolve and validate redirects before presenting a link when practical.
- Label commercial links clearly, such as “External commercial booking link.”
- Treat all fields returned by FlyAI as untrusted remote data and escape them before inclusion in Markdown.
- Provide a non-commercial recommendation mode that omits booking links and promotional branding.
