Back to skill

Security audit

Car Consult

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent car-buying advisor, but it automatically reads stored vehicle-preference memory without asking first.

Review before installing if you do not want the agent to reuse stored car preferences automatically. The main practical risk is local privacy and cross-context reuse of budget/location/commute details; pricing and policy advice should also be checked against current sources.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:50
Finding
Automatic Access to Persistent User Memory## Vulnerability Details **File Location**: `SKILL.md`, lines 50–54 **Vulnerability Type**: Unnecessary access to persistent user data **Risk Level**: Medium **Complete Code Snippet**: ```md **Memory linkage** (read `memory/car.md` if it exists): - Known preferences: preferred powertrain (BEV/PHEV/EREV), budget range, deal-breakers - Known context: home city, commute distance, parking/charging situation - **Still confirm with the user** — memories may be stale or may belong to a previous context - If no `memory/car.md` exists, proceed normally. Don't invent preferences. ``` ### Technical Analysis The Skill directs the Agent to read `memory/car.md` whenever that file exists. This resource is outside the audited project and may contain persistent information from prior conversations, including the user's location, budget, commute, parking or charging situation, and purchasing preferences. Automatic access is broader than necessary for the vehicle-consultation task because the Skill already requires the Agent to ask the user for current requirements. The instruction acknowledges that the stored information may be stale or belong to a previous context, but reconfirming the data after reading it does not prevent the initial unauthorized access or accidental disclosure. No instruction to modify or poison memory was found, and no mechanism for transmitting memory contents to an external party was identified. The issue is therefore limited to unnecessary local access and possible cross-context disclosure. ### Attack Path 1. A user submits a vehicle-buying or comparison request that activates the Skill. 2. The Skill instructs the Agent to check whether `memory/car.md` exists. 3. If available, the Agent reads persistent information recorded in an earlier context. 4. Stale, misattributed, or private information influences the recommendation or is referenced while asking the user to confirm it. 5. Information from another context may consequently be exposed or impr ...[truncated 625 chars]
Remediation
## Remediation Suggestions 1. Remove the unconditional instruction to inspect `memory/car.md`. 2. Collect current requirements directly from the user, as already required by the Skill workflow. 3. If memory use is optional, obtain explicit and informed user consent before accessing it. 4. Explain which stored fields will be read and why they are necessary. 5. Apply data minimization by retrieving only the specific fields required for the current request. 6. Validate that the memory belongs to the current user and conversation context. 7. Treat stored values as untrusted and potentially stale; never reveal them before the user independently supplies or explicitly authorizes their use. 8. Provide a memory-free execution path that offers equivalent core functionality. A safer replacement would be: ```md **Optional memory linkage**: - Do not access persistent memory by default. - Ask the user whether they want previously saved vehicle preferences to be used. - Only after explicit consent, retrieve the minimum fields necessary for this request. - Ask the user to confirm relevant values before using them in recommendations. ```
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Natural-Language Policy Violations

High
Confidence
96% confidence
Finding
The requirement to ask and structure responses in Chinese forces a language choice without checking the user's preferred language. This can degrade user control and cause misunderstanding, especially if the surrounding conversation is in another language, leading to incorrect recommendations or unsafe financial guidance due to miscommunication.

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
- **Search fails / times out**: say "当前搜索暂时不可用,我基于已有知识给你参考。落地价已标注为估算。" Then proceed with known data. Don't refuse to answer.
Confidence
85% confidence
Finding
Skill instructs the agent to never refuse or to always comply. Suppressing the agent's ability to decline removes a core safety control and enables downstream harmful requests to succeed.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The skill description includes broad implicit triggers like general car-buying and EV recommendation phrases, which can cause the skill to activate on loosely related user requests without a clear invocation boundary. Over-broad routing is risky because it can hijack conversations, apply domain-specific assumptions prematurely, and increase the chance that other instruction sets or tools are used in the wrong context.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This JSON eval file contains multiple Chinese-language prompts and expected outputs, which implies the skill is designed to operate in Chinese only. Under the policy, forcing a specific language without user choice or an explicit justified regional constraint is a natural-language policy violation.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
This markdown file presents all instructions and calculations exclusively in Chinese, and there is no indication that the user can opt into another language or that the skill is intentionally limited to a Chinese-speaking audience. Under the policy rule for natural-language violations, forcing a specific language without user opt-in is a reportable issue.

Natural-Language Policy Violations

Low
Confidence
85% confidence
Finding
This markdown file contains a natural-language locale inconsistency: the main content is in English, while the related-files section switches to Chinese labels and link descriptions. Because the skill does not offer the user a language/locale choice or explain that it is intentionally China-specific, it may violate language/locale policy expectations.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
This JSON file defines all example trigger and non-trigger queries exclusively in Chinese, and there is no accompanying indication in the file that users may interact in other languages or opt into Chinese-only behavior. Because natural-language policy violations apply to all file types, a dataset that effectively forces one language for skill triggering can be a locale/language policy concern.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
This markdown file is written entirely in Chinese and does not indicate that language selection is optional or configurable. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be a locale/language policy issue.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
This markdown file is entirely written in Chinese and does not indicate that the skill is region- or language-specific, nor does it offer an alternative language or user opt-in. Under the policy rule for natural-language violations, forcing a specific language without user choice can be a locale policy issue.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
This markdown file presents all instructions and policy information only in Chinese, which may implicitly force a specific language on users. The file does not provide an opt-in, alternative language, or an explicit statement that the skill is intentionally region/language-specific.

Static analysis

No suspicious patterns detected.