Back to skill

Security audit

ai-usage-collector

Security checks for vulnerabilities and agentic risk

Overview

This skill is a simple, disclosed CSV extractor for user-provided WeChat AI-usage messages, but users should handle the resulting coworker data carefully.

Install only if you are authorized to process the WeChat messages involved. Avoid including unrelated or sensitive personal chat content, consider anonymizing names when possible, restrict sharing of the generated CSV, and review or neutralize cells that start with formula characters such as =, +, -, or @ before opening in spreadsheets.

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:23
Finding

Spreadsheet Formula Injection in Generated CSV Output

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 23-36
Vulnerability Type: CSV formula injection
Risk Level: Medium

The following is a faithful English translation of the vulnerable instruction segment:

text
### Step 1: Receive input
The user sends WeChat group screenshots and/or text messages.
- If there is only text: parse it directly.
- If there are screenshots: first read the image content using OCR or visual understanding.

### Step 2: Extract each entry
Extract information from every relevant message according to the field definitions.
- Populate fields that can be extracted.
- Leave unavailable fields empty; do not invent information.
- Skip messages unrelated to AI-tool usage.

### Step 3: Output structured data as plain text for pasting into a spreadsheet
Output in CSV format, without a header, with one record per line.
Users can copy and paste it directly into Excel or Teams.

Technical Analysis

The Skill accepts untrusted text or OCR content from group-chat messages and places extracted values into CSV cells intended for direct use in Excel or Teams. Its CSV handling only addresses commas by requiring affected fields to be enclosed in quotation marks. It does not require neutralization of cells whose first significant character is =, +, -, or @.

Quoting a cell according to ordinary CSV rules does not prevent spreadsheet formula interpretation. For example, a quoted cell such as "=WEBSERVICE(...)" can still be interpreted as a formula after import. Leading whitespace, tab characters, carriage returns, and other control characters may also be used to bypass simplistic first-character checks.

Because the unsafe behavior is caused by a missing output-sanitization requirement rather than executable source code, the vulnerable segment is the workflow that transfers untrusted input into spreadsheet-ready CSV.

Attack Path

  1. An attacker posts a group-chat mess ...[truncated 1779 chars]
Remediation
View remediation

Remediation Suggestions

  1. Treat every extracted field as untrusted before generating CSV.
  2. After removing or accounting for leading whitespace and control characters, detect cells beginning with =, +, -, or @.
  3. Neutralize dangerous cells by prefixing them with a single quotation mark or another spreadsheet-safe text marker appropriate to the target application.
  4. Do not rely on CSV quotation marks alone; quoting protects CSV structure but does not disable formula evaluation.
  5. Escape embedded quotation marks according to CSV rules and consistently quote all fields.
  6. Apply strict validation where feasible. For example, names and AI-tool identifiers should use narrowly defined character sets, while free-text fields should still receive formula neutralization.
  7. Detect bypass forms involving leading tabs, carriage returns, line feeds, Unicode whitespace, or other control characters.
  8. Add an explicit warning instructing users to import all columns as text and to review suspicious cells before opening or pasting the output.
  9. Add tests covering direct formula prefixes, quoted formulas, leading-whitespace bypasses, embedded commas, quotation marks, and multiline values.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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 (4)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly instructs users to extract coworkers' names and AI-usage details from WeChat messages and screenshots, but it provides no privacy notice, consent requirement, or handling guidance for personal data. This creates a real privacy/compliance risk because informal chat content is being transformed into a structured, reusable record that can be redistributed more broadly.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is designed to convert potentially sensitive coworker chat content and screenshots into structured CSV records containing names, tools used, and work activities. That data transformation increases exposure by making personal and behavioral information easy to search, copy, aggregate, and forward beyond the original chat context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The entire skill manifest and instructions are written as if the skill operates only in Chinese, including trigger phrases and all user-facing guidance, with no indication that users may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The natural-language instructions, trigger phrases, and examples are all presented only in Chinese, suggesting the skill is intended to operate in a single language/locale. There is no indication that users may choose another language or that the Chinese-only scope is explicitly documented as a justified regional constraint.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.