Back to skill

Security audit

vue-table-操作及导出

Security checks for vulnerabilities and agentic risk

Overview

This skill automates a disclosed demo table workflow, but users should notice that it logs in with embedded demo credentials, edits records, and writes an Excel file to the desktop.

Install only if you intend to run this against the documented vue-element-admin demo workflow. Treat editor/123456 as demo-only, confirm the target site before login, and choose or verify the Excel output path before running because the skill writes a dated file on the desktop and saves record edits in the web app.

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:11
Finding
Hard-Coded Shared Authentication Credentials## Vulnerability Details **File Location**: `SKILL.md`, lines 11 and 135 **Vulnerability Type**: Hard-coded plaintext credentials **Risk Level**: Medium ### Vulnerable Snippets `SKILL.md`, line 11: ```text 1. 登录系统(editor/123456) ``` `SKILL.md`, line 135: ```text 4. 登录凭据为 editor/123456(系统可能已自动登录) ``` The snippets state that the login credentials are `editor/123456`. ### Technical Analysis A reusable skill document embeds a username and password directly in plaintext. Anyone with access to the skill package, an agent transcript, generated logs, or copied documentation can recover these credentials without additional authorization. Although the workflow identifies a public demonstration site, the skill does not technically restrict use of the credentials to that host. The credentials could therefore be attempted against other accessible vue-element-admin deployments that retain the same default or reused account configuration. Embedding credentials in agent instructions also unnecessarily exposes them to every component that processes the skill text. ### Attack Path 1. An attacker obtains `SKILL.md` or an execution transcript containing its instructions. 2. The attacker extracts the plaintext credentials `editor/123456`. 3. The attacker locates the referenced demo application or another reachable deployment with the same account configuration. 4. The attacker submits the recovered credentials to the application's login interface. 5. If authentication succeeds, the attacker operates with the permissions assigned to the `editor` account, including any table viewing or editing capabilities exposed to that role. ### Impact Assessment Successful exploitation can provide authenticated access at the `editor` role level. Within the documented workflow, that may include viewing table records, opening record details, changing record importance values, and exporting accessible data. The finding does not demonstra ...[truncated 273 chars]
Remediation
## Remediation Suggestions 1. Remove the plaintext password from `SKILL.md` and all examples, comments, and operational notes. 2. Obtain authentication data at runtime through an approved secret manager or explicit authorized user input. 3. Pass credentials through protected runtime variables rather than embedding them in prompts or source-controlled files. 4. Restrict the workflow to an explicit allowlist containing the intended demonstration hostname. 5. Refuse to submit demonstration credentials to redirects, alternate origins, or user-supplied hosts. 6. Rotate or disable the documented password wherever the account is not intentionally public. 7. Use a dedicated least-privileged demonstration account whose permissions and data access are limited to disposable test content. 8. Prevent secrets from appearing in browser traces, agent transcripts, telemetry, screenshots, and error logs. 9. Add a warning that example credentials must never be reused for production or private deployments.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding
Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Context-Inappropriate Capability

Medium
Confidence
98% confidence
Finding
The skill documentation exposes hardcoded credentials ('editor/123456') and instructs the agent to use them for authentication. Even if this targets a demo system, embedding credentials in reusable skill content normalizes unsafe secret handling and can lead to credential reuse, accidental use against non-demo environments, or unauthorized access if copied elsewhere.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill creates and writes an Excel file directly to a local desktop path without any warning, consent step, or path validation. Silent filesystem modification can overwrite user data, leak extracted information into an insecure location, or violate least-surprise expectations for an automation skill.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs the agent to change application records ('修改重要性为 3 星') and save those edits, but it does not clearly warn that this alters remote system data. In an automation context, undocumented state-changing behavior is dangerous because users may expect read/export actions only, while the skill actually performs writes to the target application.

Static analysis

No suspicious patterns detected.