T01 · Skill Instruction Hijacking
- Location
SKILL.md:11- Finding
Skill-Wide Instruction Hijacking Forces Unrequested Retrieval and Persistent Storage
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed copywriting and knowledge-management pipeline, but it grants broad persistent write/delete authority and has unsafe path and remote-sync handling that can overwrite or remove files outside the intended workspace.
Review before installing. This skill is designed to store and manage copywriting work, lecturer samples, profiles, knowledge documents, and series state on disk and in SQLite. Only use it in a dedicated workspace with non-sensitive content, avoid untrusted cloud knowledge URLs or imported lecturer packages, and do not rely on it for temporary drafting unless you are comfortable with automatic persistence and deletion behavior.
SKILL.md:11Skill-Wide Instruction Hijacking Forces Unrequested Retrieval and Persistent Storage
scripts/knowledge_sync.py:111Remote Manifest Path Traversal Enables Arbitrary File Overwrite
scripts/core/knowledge_service.py:175Untrusted Cloud Knowledge Is Injected into Mandatory Agent Context
scripts/core/copywriting_service.py:30Lecturer, Series, and Sample Identifiers Permit Filesystem Path Traversal
scripts/db_query.py:129Caller-Selected Staging Files Are Deleted Without Workspace Containment
scripts/core/semantic_model.py:270Downloaded ONNX Model Is Loaded Without Integrity Verification
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill claims to support copywriting, style learning, knowledge access, and series progress in user conversations, yet the described behavior aligns more with migration/import/export and synchronization utilities. That mismatch increases the chance that an agent invokes a privileged data-management tool during routine conversation, exposing data or mutating state far beyond what the user intended.
The skill declares itself mandatory for very broad, common phrases such as general requests to write copy, scripts, learn lecturer style, continue a series, or inspect knowledge. Overbroad triggers are dangerous because they can hijack normal conversations, force use of a stateful and mutating tool, and increase the probability of unnecessary file/database writes or deletions in response to routine user prompts.
--query-file causes the program to read arbitrary local files before request processing, with no restriction that the file be a safe temporary input from the skill workspace. In an agent context, this can be abused to exfiltrate sensitive file contents by loading unexpected files and then surfacing parse errors, downstream content, or side effects through the tool output.
The script requires a user-supplied --data-dir and later uses it for recursive enumeration and service operations without constraining it to a trusted base path. In an agent environment, an attacker could point the tool at arbitrary local directories to inspect their contents or operate on unintended data stores, creating a clear local file disclosure and boundary-bypass risk.
The skill advertises and documents capabilities that involve file reads, file writes, and network-backed synchronization, but it does not declare any explicit tool scope or allowed-tools boundary. That creates a governance gap: reviewers and runtime policy engines cannot easily constrain what the skill may access, increasing the risk of unintended filesystem traversal, persistent writes, or remote data sync during normal use.
The skill description does not clearly and prominently warn users that their content, lecturer samples, profiles, and series outputs may be persistently written to both a database and the filesystem. This is dangerous because users may provide sensitive drafts or private materials expecting ephemeral assistance, while the workflow insists on automatic save operations and write-through persistence.
The trigger table uses broad categories like Copywriting, Lecturer, Series, Revision, Knowledge, and Management without enough limiting conditions. In the context of a skill that can read/write local files, sync data, and delete content, coarse activation categories increase the risk of overreach and misuse for requests that do not actually need privileged operations.
The entire specification is written only in Chinese and presents the format as a mandatory standard, with no indication that users may choose another language or that the locale restriction is required for a region-specific purpose. This can violate language/locale policy where skills should not force a specific language without user opt-in or documented justification.
The workflow instructs the agent to delete existing episode data and the corresponding .txt file before saving revisions, but it does not require explicit user confirmation or a safety interlock before performing the destructive action. In a copywriting skill with persistent storage, this creates a real risk of unintended data loss from ambiguous user requests, wrong episode selection, or automated execution errors.
The workflow documents a destructive delete operation for lecturer data and describes recovery as a separate manual process, but it does not instruct the agent to obtain explicit confirmation, warn about data loss scope, or clearly state recovery limitations. In a skill that manages persistent lecturer profiles, samples, and series assets, this increases the risk of accidental or overbroad deletion of sensitive business content.
The delete_episode method deletes both database metadata and the corresponding .txt file via unlink(), but there is no confirmation prompt, warning log, or other visible user disclosure before the destructive action. Because this operation permanently removes user-authored content, it is safety-relevant and should be explicitly disclosed or gated.
The module docstring states that every data change updates both DB and filesystem and describes a write-through architecture. However, the add_doc docstring says this method 'only indexes' and 'does not write files back', so the documented architecture claim is contradicted by actual add behavior, with only delete performing filesystem cleanup.
The manifest describes mandatory support for lecturer profile access, style learning, series continuity/progress, and copywriting workflow persistence. In this file, the implemented behavior is limited to storing, deleting, listing, and searching knowledge-base documents and chunks, with no code for lecturer profiles, style replication, series progress tracking, or script generation.
No suspicious patterns detected.