T01 · Skill Instruction Hijacking
- Location
SKILL.md:12- Finding
Skill instructions attempt to override agent behavior and request internal reasoning
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a real paid text-generation workflow, but it needs Review because it handles prompts and payment credentials with weak scoping and asks the agent to reveal its reasoning.
Install only if you are comfortable with a Chinese-language paid service sending your prompt and payment credential to web.kihb.shop and storing order records locally. Do not use it for sensitive prompts until the publisher removes the reasoning-disclosure instruction, validates order numbers, protects local order files, and clearly documents data retention and the clawtip dependency.
SKILL.md:12Skill instructions attempt to override agent behavior and request internal reasoning
scripts/file_utils.py:14Unvalidated order number permits path traversal and external disclosure of credential data
scripts/file_utils.py:23Payment-related order files are created without explicit restrictive permissions
The skill is described as a paid text-generation service, but the documented behavior centers on creating local order records, persisting JSON data, and invoking payment-related scripts, while not actually describing any concrete text-generation logic. This mismatch is dangerous because it obscures the real operational footprint of the skill, making reviewers and users less able to assess data handling, payment integrity, and filesystem side effects.
Forcing the agent to always respond in Chinese and expose chain-of-thought imposes a behavioral policy that can override user preference and safe default behavior. The language restriction alone is mostly a product issue, but coupled with required thought disclosure it becomes more dangerous because it pressures the agent to reveal internal reasoning in all interactions.
Without declared permissions the skill's intent is opaque and cannot be validated.
The instruction telling the agent to include its 'thinking process' conflicts with secure assistant behavior because internal reasoning can contain sensitive intermediate judgments, hidden instructions, or policy-related context not meant for end users. In a skill that also handles payments and credentials, this increases the chance of accidental disclosure during a transaction flow.
Explicitly directing the model to reveal its 'thought process' creates a direct risk of exposing internal reasoning, hidden prompts, or sensitive context derived from tools and credentials. Because this skill includes payment handling and credential.read permission, the context makes such disclosure more concerning than in a harmless standalone content skill.
The script sends the user-provided question to an external domain over the network as part of order creation, but there is no explicit user-facing notice or consent flow in this code path. Because the skill is for text generation, users may place sensitive prompts or personal data into the question field, causing unintended disclosure to a third-party service.
The script stores local order metadata including the user's question, order number, payment-related fields, and encrypted data without any visible disclosure, retention policy, or sensitivity handling. This creates privacy and local data exposure risk if the host environment is shared, compromised, or logs/backups are later accessed.
Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.
if __name__ == "__main__":
parser = __import__('argparse').ArgumentParser(description="Create order")
parser.add_argument("question", help="User request")
args = parser.parse_args()
This code derives user-home paths and reads/writes JSON order files in persistent local storage. For a skill described only as generating short text after payment verification, persistent filesystem management of order artifacts is an additional capability that is not clearly justified by the stated purpose unless explicitly declared.
The manifest describes a paid short-text generation service, but this file is devoted to loading and saving order records under a local 'orders' directory. Order persistence may relate to payment verification, but the implemented behavior here is order-file management rather than text generation itself, which materially exceeds the manifest's described function.
The raised RuntimeError contains a Chinese-only message ("订单文件不存在") with no indication that the user can choose locale or language. This creates a natural-language policy concern because the skill imposes a specific language in user-visible output without opt-in or documented justification.
The function transmits both the user's question and a payment credential to a third-party remote service, which exposes sensitive content and billing-related data outside the local trust boundary. Although the endpoint uses HTTPS, this file provides no minimization, redaction, or explicit user disclosure/consent mechanism at the point of transmission, increasing privacy and credential-handling risk if the remote service is compromised, misconfigured, or untrusted.
Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.
if __name__ == '__main__':
parser = __import__('argparse').ArgumentParser(description="Get service result")
parser.add_argument("order_no", help="Order number")
args = parser.parse_args()
The script's natural-language runtime messages are hardcoded in Chinese, including network and order-creation errors, with no indication that the skill is region-specific or that users can opt into another language. This can violate language/locale policy when a skill imposes one language by default without user choice.
The save_order function creates directories and writes JSON data to disk, but the code provides no confirmation prompt, logging, comment, or docstring disclosing that user data will be persisted under the home directory. For a code file, this is a safety-relevant file write with no visible warning in the file itself.
The file returns and raises multiple Chinese-only messages such as 请输入您的履约凭证 and 履约请求失败, which imposes a specific language on users. There is no indication of user opt-in, language selection, or documented region-specific justification in this file.
No suspicious patterns detected.