Back to skill

Security audit

Jd Writing

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a normal Chinese job-description writing guide, but it tells agents to immediately modify the skill itself based on user feedback, which creates persistent instruction-change risk.

Install only if you are comfortable with a Chinese-focused JD-writing assistant, and prefer running installed skills read-only. Before allowing any persistent updates to SKILL.md or EVOLUTION.md, require an explicit diff and maintainer approval.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
SKILL.md:164
Finding

Untrusted User Feedback Can Persistently Modify Skill Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 164
Vulnerability Type: Persistent instruction poisoning through automatic self-modification
Risk Level: Medium

Vulnerable Code Snippet

markdown
用户指出可复用问题时,立即更新本 Skill 并在 [EVOLUTION.md](EVOLUTION.md) 记录。

English translation:

text
When the user identifies a reusable issue, immediately update this Skill and record it in EVOLUTION.md.

Technical Analysis

The Skill instructs the agent to modify its persistent instruction files whenever a user characterizes feedback as reusable. The workflow does not require the feedback to be authenticated, reviewed by a maintainer, validated against security policies, or presented as a proposed diff before it is written.

Because SKILL.md controls future agent behavior and EVOLUTION.md records persistent changes, ordinary task input can cross the boundary from session-specific context into durable agent state. An attacker could frame a malicious behavioral rule as a reusable correction and induce the agent to incorporate it into the Skill. If the execution environment grants write access to these files, the injected rule could affect later sessions and users.

This issue is conditional on the hosting agent having permission and tooling to modify the Skill package. The audited repository itself contains no script that performs the write automatically.

Attack Path

  1. An attacker invokes the Skill with an otherwise legitimate job-description request.
  2. The attacker provides a purported reusable correction containing an attacker-controlled rule.
  3. The attacker asks the agent to treat that rule as generally applicable rather than specific to the current task.
  4. Following SKILL.md:164, a write-capable agent updates SKILL.md and records the change in EVOLUTION.md.
  5. The modified instruction is loaded in later sessions.
  6. Subsequent outputs may follow the attacker-controlled rule without the later user knowing that persiste ...[truncated 688 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the requirement to update Skill files automatically from ordinary user feedback.
  2. Treat feedback as session-local by default and do not write it into persistent instructions.
  3. Store proposed reusable feedback in an isolated draft or structured review queue rather than in SKILL.md.
  4. Require explicit authorization from a trusted maintainer before applying persistent changes.
  5. Display the exact proposed diff and affected files before requesting approval.
  6. Validate proposed changes against fixed safety constraints and reject instructions that expand permissions, weaken safeguards, introduce external execution, or alter unrelated behavior.
  7. Restrict the runtime agent to read-only access to installed Skill packages whenever self-modification is not required.
  8. Maintain an auditable change history with author identity, approval status, timestamps, and rollback support.
  9. Replace the vulnerable instruction with wording such as:
markdown
When a user identifies a potentially reusable issue, summarize it as a session-local improvement proposal. Do not modify Skill files. Persistent changes require explicit review and approval by an authorized maintainer.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The evolution note explicitly says the description was changed to a broad 'Use when ...' trigger style and the metadata description lists many loosely bounded situations. Overly broad activation constraints can cause the agent to invoke this skill outside the user's precise intent, leading to unsolicited rewriting, language assumptions, or inappropriate transformation of hiring content.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file states the skill was rewritten as a Chinese-only version based on feedback, with no indication of runtime user-language validation or opt-in. A forced language mode can override user preferences, degrade output correctness for non-Chinese contexts, and cause the system to mishandle multilingual or policy-sensitive recruiting requests.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation description is broad enough to trigger on many routine requests involving job descriptions, edits, or recruiting-related wording. Over-broad triggering can cause the wrong skill to activate, shaping the assistant's behavior without clear user intent and increasing the chance of unintended data handling or inappropriate automation in adjacent HR workflows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The description explicitly states the skill is for writing or revising a Chinese-language job description. This imposes a language constraint in natural language without offering user opt-in, alternatives, or a documented region-specific justification, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire skill file provides instructions and templates only in Chinese, which can impose a specific language on the skill's behavior. Under the policy, locale or language constraints should either be optional for the user or clearly documented as justified for a region-specific use case, which is not stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file consistently instructs use of Chinese job titles, for example requiring the main title to remain in '中文 / 通用英文' and giving all guidance in Chinese. This effectively imposes a language/locale preference without any user opt-in or stated regional justification, which matches the policy-violation criterion for forced language constraints.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

SQP-3 applies to all file types and covers natural-language policy violations such as forcing a specific language without user opt-in. This playbook presents all instructions exclusively in Chinese and contains no indication that users may choose another language or locale.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.