T01 · Skill Instruction Hijacking
- Location
scripts/workflow_orchestrator.py:67- Finding
Untrusted Workflow Content Is Converted into Privileged Agent Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a real workflow helper, but it gives project-controlled workflow files too much influence over delegated agent work and file writes.
Review before installing. Use this only on trusted or reviewed DESIGN.md files, avoid running auto-fix unless the project is under version control, and do not let generated delegate_task context run with broad terminal/file/web access without user approval and project-root path limits. Also expect most documentation and CLI output to be Chinese.
scripts/workflow_orchestrator.py:67Untrusted Workflow Content Is Converted into Privileged Agent Instructions
scripts/output_validator.py:205Project-Controlled Output Paths Permit Writes Outside the Project Root
references/template-authoring-and-recovery.md:28Cross-Session Recovery Instructions Encourage Broad Access to Conversation History
该代码与声明中的“上下文管理”部分高度一致:它负责在项目级别持久化上下文、共享数据、记录当前 skill、完成列表和进度,并通过文件锁保证并发访问安全。但声明称其是“编排核心”,且包括“流程编排、质量保证”。从实际代码看,并没有任务调度、流程控制、分支决策、依赖解析、执行管线管理等更完整的编排能力;也没有校验、测试、审计、质量检查等“质量保证”功能。因此描述比实际能力更宽,尤其在“质量保证”方面明显不符,在“流程编排”方面也只有轻量状态跟踪而非完整实现。综合判断为存在描述与行为不匹配。
声明描述的是“编排核心—上下文管理、流程编排、质量保证”,听起来像一个 orchestration/core 组件。但实际代码并未实现流程编排或上下文管理核心逻辑,而是一个面向命令行的输出验证器。它的主要功能是读取 DESIGN.md 和项目输出文件、执行规则校验、生成报告,并在 auto-fix 模式下修改文件系统。这与“编排核心”这一主要用途存在明显偏差。虽然‘质量保证’与验证器部分相关,但代码还包含未在描述中体现的重要能力:文件系统扫描、从上下文文件读取内容、自动修复写文件/建目录、覆盖率估算和安全检查。因此应判定为描述与实际行为不匹配。
The skill documents substantial file read/write behavior and workflow execution patterns, but it does not declare any explicit tool scope or allowed-tools boundary. In an agent environment, missing capability scoping increases the chance that the skill is executed with broader filesystem access than intended, enabling unintended modification of project files or sensitive local data exposure.
The manifest description explicitly states the skill in Chinese and the document consistently presents the skill as Chinese-first without any opt-in or user choice for language. The policy for this audit flags locale or language constraints when they are imposed without user selection or clear region-specific justification.
This markdown file is written entirely in Chinese, including the title and all instructional content, with no indication that the language choice is optional or that the skill is intended only for a Chinese-speaking audience. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.
This Python file contains natural-language docstrings and CLI messages in Chinese throughout, establishing a fixed language for interaction. The policy explicitly calls out locale/language constraints as violations when the skill does not offer user opt-in or choice.
The module docstring and all user-facing CLI messages are written only in Chinese, which effectively fixes the interaction language for users of this skill. There is no indication of user opt-in, locale selection, or documentation that this is intentionally limited to a Chinese-specific context.
The manifest describes the skill as orchestration core for context management, workflow orchestration, and quality assurance, and this file's docstring presents it as an output validator. However, the code does not only validate output quality: auto_fix creates directories/files and appends placeholder content to documentation outputs. That is behavior-changing remediation, not just validation, and materially expands the skill's operational scope.
This code file includes safety-relevant write operations: creating directories, touching files, writing new files, and appending content to existing markdown files during auto_fix. While the function name suggests modification, the execution path itself provides no prior confirmation prompt or explicit warning before making filesystem changes, and the module docstring does not disclose these side effects.
A quality/output validator is expected to inspect and report on outputs. Here, the code actively writes placeholder sections into markdown files and creates missing output files/directories, which is a separate content-generation/remediation capability rather than a direct requirement for validation. This is especially clear where it inserts generic TODO sections and seed content instead of just reporting findings.
This Python skill contains natural-language documentation and CLI usage text entirely in Chinese, which imposes a specific language on users without any opt-in or alternative locale. The policy explicitly flags language or locale constraints when the skill does not offer user choice or clearly document a justified regional limitation.
This markdown file contains user-facing instructions exclusively in Chinese, including the title, steps, command explanations, and linked documentation references. Under the policy rule for natural-language violations, forcing a specific language without user opt-in is a reportable issue unless the locale restriction is clearly documented and justified, which is not present here.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# 创建项目目录
mkdir my-project
cd my-project
# 复制示例 DESIGN.md
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# 创建项目目录
mkdir my-project
cd my-project
# 复制示例 DESIGN.md
This markdown file explicitly describes that the validator reads project files and can perform automatic fixes via validator.auto_fix("writing-plans"), but it does not warn users that running these commands may modify files in their project. For markdown files, SQP-2 applies when descriptions omit warnings about behaviors that could affect user data or system integrity.
The documented CLI includes context_manager.py clear, workflow_orchestrator.py restore, and output_validator.py auto-fix, all of which can affect stored state or project contents, but the README provides no caution about potential data loss or overwriting. In a markdown skill description, omitting such warnings for destructive or state-altering behavior matches SQP-2.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# 创建项目
mkdir simple-project
cd simple-project
# 创建 DESIGN.md
The manifest description and the entire design guidance are written in Chinese, with no indication that other languages are supported or that the user can opt into this locale. This can constitute a language/locale policy violation because the skill appears to impose a specific language by default rather than offering a choice.
This markdown file presents the skill description and operational guidance exclusively in Chinese, including the title, overview, workflow, and validation sections. The policy requires flagging language or locale constraints when a specific language is effectively forced without user opt-in or documented justification.
The heading includes the instruction "输出" alongside the skill name, indicating the skill is intended to produce output in Chinese. There is no indication that the user can choose another language or that this locale restriction is justified, which creates a natural-language policy concern.
The entire technical design document is written in Chinese, and there is no indication that the language choice is optional, user-selected, or required for a region-specific purpose. This can violate language/locale policy when a skill or its documentation implicitly enforces a specific language without user opt-in.
The manifest description and the entire instructional content are written in Chinese, with no indication that the user can choose another language or that the skill is intentionally limited to a Chinese-speaking context. This creates a natural-language locale policy concern because the skill effectively enforces a language without user opt-in.
The top-level docstring says this is an output validator that 'truly reads project files for validation,' which frames the tool as inspection-oriented. The implementation later performs file creation and content appends in auto_fix and _append_to_output, so the documentation understates and partially contradicts the side-effecting behavior.
The module docstring and all printed status messages are written in Chinese, which imposes a specific language on users running the script. The file does not offer an opt-in language selection or explain that the skill is intentionally limited to a Chinese-speaking context.
All user-facing instructional content in this file is presented in Chinese, and there is no indication that the skill is region-specific or that users may choose another language. Per SQP-3, forcing a specific language without user opt-in is a natural-language policy concern.
No suspicious patterns detected.