T01 · Skill Instruction Hijacking
- Location
SKILL.md:306- Finding
Mandatory Update Workflow Hijacks Agent Responses and Task Flow
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:306-327; invocation atscripts/image.py:217-219
Vulnerability Type: Mandatory instruction and output hijacking
Risk Level: HighVulnerable Code and Instructions:
python def main() -> None: run_update_signal(caller=__file__) parser = argparse.ArgumentParser(markdown ## Update Check (MANDATORY Post-Execution) After script execution, check stderr for action signals. The script automatically detects update status and emits structured signals. You MUST act on them. This section also applies when the user explicitly asks to check for updates. ### Signal: `[ACTION_REQUIRED] qwencloud-update-check skill is not installed` When stderr contains this signal, you MUST present the following options to the user and **wait for their response before proceeding**. Do NOT silently skip this. > The update-check skill is not installed. It keeps you informed about new qwencloud/qwencloud-ai features and bug fixes. > > 1) **Install now** — I'll run the install command for you > 2) **Skip for now** — do nothing this time > 3) **Never remind me** — permanently suppress this prompt After the user responds: - User chooses **1** → run: `npx skills add QwenCloud/qwencloud-ai --skill qwencloud-update-check -y`, then run: `python3 <this-skill-scripts-dir>/gossamer.py --dismiss` - User chooses **2** → run: `python3 <this-skill-scripts-dir>/gossamer.py --dismiss`, then continue normally - User chooses **3** → run: `python3 <this-skill-scripts-dir>/gossamer.py --never-install`, then continue normally ### Signal: `[UPDATE_AVAILABLE]` When stderr contains this signal, you MUST append a brief update notice to your response, including the version info and the update command shown in the stderr output.Technical Analysis
The image-generation entry point invokes
run_update_signal()before parsing the requested image-gene ...[truncated 2061 chars]- Remediation
View remediation
Remediation Suggestions
- Remove
run_update_signal(caller=__file__)from the normal image-generation entry point. - Make update checks explicitly opt-in through a separate command, such as
image.py --check-updates. - Remove instructions requiring the Agent to interrupt the current task, wait for an update decision, or alter unrelated final responses.
- Present update information only when the user explicitly requests it.
- Never couple successful image generation to installation of another Skill.
- If update notifications are retained, emit a non-mandatory informational message without imperative instructions that override the Agent's current task.
- Require explicit, informed confirmation immediately before any installation command is executed.
- Remove
