Back to skill

Security audit

Yijing Upload

Security checks for vulnerabilities and agentic risk

Overview

This is a Chinese I Ching lookup and interpretation skill with local reference data and a disclosed local reading log; no hidden code, network access, credential use, or destructive behavior was found.

Install only if you are comfortable with a local divination history being kept. Avoid entering highly private medical, legal, financial, or personal details unless logging is disabled or cleaned up, and treat the output as cultural interpretation rather than professional advice. If the CSV log is opened in spreadsheet software, formula-like user subjects should be neutralized first.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:234
Finding

User-Controlled CSV Formula Injection in Divination Log

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 234-244 and 259-269
Vulnerability Type: CSV formula injection caused by persisting an insufficiently validated user-controlled subject
Risk Level: Medium

Vulnerable Instruction Snippets

text
## Input format

[date]-[divination subject]-[6-digit number]

Rules:
- Full format: 2026/3/12-[example subject]-987778
- Number only: date=current date (2026/5/25), subject=No misfortune
- The number must contain six digits, each from 6 through 9
- An invalid number results in an error and no divination
text
| Step | Content | Method |
|------|---------|--------|
| Step 1 | Validate number | Rule validation |
...
| Step 8 | Archive record | Write CSV/JSON |

The user-controlled subject is ultimately stored in the 占何事 subject column of references/yijing-log.csv.

Technical Analysis

The Skill validates the six-digit divination number but specifies no equivalent validation or output neutralization for the user-controlled subject before Step 8 writes the record to CSV.

CSV itself is a data format, but common spreadsheet applications interpret cells beginning with =, +, -, or @ as formulas. An attacker can therefore submit a valid divination request whose subject begins with a spreadsheet formula. Correct CSV quoting alone does not necessarily prevent formula interpretation after the file is opened.

The current repository log row is benign, and no existing formula payload was found. The vulnerability exists in the instructed processing path for future user input.

Attack Path

  1. An attacker supplies an otherwise valid request containing a subject that begins with a spreadsheet formula and a valid six-digit value.
  2. The Skill validates only the six-digit value, so the crafted subject remains accepted.
  3. The Agent follows the archival step and writes the subject into references/yijing-log.csv.
  4. A user l ...[truncated 1058 chars]
Remediation
View remediation

Remediation Suggestions

  1. Treat every user-controlled CSV field as untrusted, including the divination subject, date, and any generated text that may incorporate user input.
  2. Before CSV persistence, neutralize fields whose first non-whitespace character is =, +, -, or @. A common defensive measure is to prefix such values with an apostrophe, subject to the behavior of the target spreadsheet application.
  3. Reject or normalize carriage returns, line feeds, null bytes, and other control characters to prevent record-structure manipulation.
  4. Enforce a reasonable maximum subject length and define an explicit character policy.
  5. Use a trusted CSV serializer for delimiter escaping and quoting. Do not rely on quoting alone to prevent formula execution.
  6. Prefer JSON or a structured database when spreadsheet compatibility is unnecessary.
  7. Add explicit instructions to Step 1 and Step 8 requiring validation and spreadsheet-formula neutralization before writing any record.
  8. Add regression tests covering subjects beginning with =, +, -, and @, including variants preceded by whitespace, tabs, or control characters.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (10)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 273)May include surrounding context.

md
输入6位数字串 → 查 `yijing-4096.csv`:

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/yijing-2026-calendar.csv (reported line 1)May include surrounding context.

text
日期,天干,占何事,初,二,三,四,五,上,卦象,本卦,之卦,动爻
2026/2/18,癸亥,无祸,8,7,7,8,7,7,877877,巽,巽,无

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/yijing-full.csv (reported line 1)May include surrounding context.

text
日期,天干,占何事,初,二,三,四,五,上,卦象,本卦,之卦,动爻
2026/2/18,癸亥,无祸,8,7,7,8,7,7,877877,巽,巽,无

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/yijing-log.csv (reported line 1)May include surrounding context.

text
日期,天干,占何事,初,二,三,四,五,上,卦象,本卦,之卦,动爻
2026/2/18,癸亥,无祸,8,7,7,8,7,7,877877,巽,巽,无

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation description is broad enough to trigger on generic requests for interpretation, advice, or analysis, which can cause the skill to engage outside a clearly intended divination context. Over-broad activation increases the chance of unnecessary handling of sensitive user content and can route ordinary advice-seeking conversations into a logging/persistence workflow without clear user expectation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill defines a persistent divination log containing date, topic of inquiry, and derived results, but does not present a clear user-facing notice or consent mechanism before storing this information. Because '占何事' can include highly sensitive personal matters, silent retention creates privacy risk and potential exposure of intimate behavioral or belief data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The workflow explicitly instructs the system to write records to CSV/JSON as part of normal operation, yet the documentation does not pair this with just-in-time disclosure or consent. In context, this is more concerning because the skill processes personal questions and inferred interpretations, so automatic persistence can surprise users and expand privacy, compliance, and secondary-use risks.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This file is a natural-language data resource and all headers and values are presented only in Chinese. Under the policy rule for language/locale, forcing a specific language without opt-in or documented regional scope can be a policy concern, and this file does not provide any such justification in its contents.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This CSV uses only Chinese headers and text throughout, which can amount to a language/locale policy issue under the rule if the skill forces a specific language without user opt-in. There is no visible indication in this file that users may choose another language or that the file is intentionally limited to a Chinese-language or region-specific use case.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.