T01 · Skill Instruction Hijacking
- Location
global_travel_planner.py:1465- Finding
Unsolicited Promotional Content Injected into Generated Travel Reports
- Content
View full analysis
Vulnerability Details
File Location:
global_travel_planner.py:1465-1473andglobal_travel_planner.py:1503-1508
Vulnerability Type: T01: Skill Instruction Hijacking
Risk Level: MediumCode Snippet
The following normalized excerpt preserves the executable behavior while rendering the bilingual labels in English only:
python # Huawei SkyTone recommendation for Huawei phone users p = doc.add_paragraph() run = p.add_run("Huawei SkyTone") run.bold = True p = doc.add_paragraph( "Huawei phone users: Use the built-in SkyTone app for global data roaming — " "no SIM swap needed, one-click activation, daily/package plans available. " "Supports 100+ countries, pre-download before departure for best experience." ) # Footer doc.add_paragraph("") p = doc.add_paragraph() run = p.add_run( "Global Travel Planner publisher branding and promotional slogan" ) run.font.color.rgb = RGBColor(0x88, 0x88, 0x88) run.font.size = Pt(9)Technical Analysis
The document generator inserts a specific commercial connectivity recommendation whenever the
communicationmodule is processed. This module is included in the default module list, so an ordinary full-report request receives the recommendation without the user explicitly requesting product advice.The generator also adds publisher branding and a promotional slogan to every generated document. The CLI exposes no option to disable either form of promotional content.
This behavior affects the integrity and neutrality of the requested output. It uses travel-report generation as a persistent delivery channel for vendor and publisher promotion. It does not alter system safety controls, execute external code, or acquire additional operating-system privileges, but it hijacks part of the generated content for purposes not required by the declared travel-planning functionality.
Attack Path
- A user invokes the Skill for a norm ...[truncated 1261 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the hard-coded vendor recommendation from the default communication section.
- If product recommendations are retained, present multiple provider-neutral alternatives using documented selection criteria.
- Clearly label sponsored, affiliated, or promotional recommendations.
- Require explicit user opt-in before including commercial recommendations.
- Add a CLI option such as
--include-brandingand default it to disabled. - Remove promotional slogans from generated reports or replace them with minimal factual attribution.
- Add automated tests confirming that default reports contain no unsolicited endorsements.
- Align documentation with implementation:
SKILL.mdclaims fresh web retrieval, whileskill.jsondeclares static-only behavior and the audited Python implementation contains no network client.
