Back to skill

Security audit

Metal Price

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a straightforward price-query/export workflow, but it exposes apparent login credentials and mandates writing exports to a fixed local Desktop path.

Review before installing. Do not use the embedded account values as distributed; remove them, rotate the exposed password if real, and provide credentials securely at runtime. Confirm the exact export destination and overwrite behavior before allowing the skill to write Excel files.

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

Error
Location
SKILL.md:47
Finding
Plaintext Account Credentials Embedded in Skill Documentation## Vulnerability Details **File Location**: `SKILL.md`, lines 47–49, 57–60, and 99–101 **Vulnerability Type**: Hardcoded credentials and plaintext sensitive data **Risk Level**: High ### Vulnerable Code ```markdown ### Login Information - **Website**: https://www.qqthj.com - **Username**: 13327325057 - **Password**: 1234567890 ``` The credentials are also repeated in the login procedure: ```markdown | 1 | Open website | URL: https://www.qqthj.com | 2-3 seconds | | 2 | Click login | "Login" button in the upper-left corner | 1 second | | 3 | Enter username | 13327325057 | - | | 4 | Enter password | 1234567890 | - | | 5 | Click login | Submit button | 1-2 seconds | ``` They appear again as default parameters: ```markdown | Username | 13327325057 | Login account | Mobile number | | Password | 1234567890 | Login password | - | ``` ### Technical Analysis `SKILL.md` stores an apparent mobile-number account identifier and its reusable password in plaintext. Anyone who can read the project, a copied Skill package, an Agent transcript containing the Skill, or an artifact generated from the repository can recover these credentials without further exploitation. The documented workflow instructs the Agent to submit these values to `https://www.qqthj.com`, demonstrating that they are intended as operational credentials rather than placeholders. Repetition across several sections further increases the chance of disclosure through logs, generated prompts, documentation extracts, or repository mirrors. Hardcoded credentials cannot be securely scoped to individual operators, are difficult to rotate without changing the distributed artifact, and prevent reliable attribution when multiple Skill users authenticate through the same account. ### Attack Path 1. An attacker obtains read access to the Skill package, repository copy, audit artifact, or content derived from `SKILL.md`. 2. The attacker reads the plainte ...[truncated 1229 chars]
Remediation
## Remediation Suggestions 1. Remove all usernames, passwords, phone numbers used as account identifiers, and other operational secrets from `SKILL.md`. 2. Immediately rotate the exposed password and revoke active sessions or tokens associated with the account. 3. Retrieve credentials at runtime from an approved secret manager or request them through a secure interactive mechanism. 4. Pass secret references rather than secret values in configuration; for example, use environment-variable names or secret-manager identifiers. 5. Ensure runtime logs, Agent transcripts, exported artifacts, and error messages redact usernames, passwords, session cookies, and authentication tokens. 6. Use separate least-privilege accounts for individual users or workloads instead of distributing a shared account. 7. Enable multi-factor authentication where the target service supports it. 8. Review repository history, mirrors, build artifacts, and prior distributions for the exposed credentials. Purge them where practical, while treating rotation as mandatory because deleting current-file content does not invalidate historical copies. 9. Add automated secret scanning to pre-commit and CI workflows to prevent future credential commits. 10. Replace the documented values with clearly nonfunctional placeholders, such as `${QQTHJ_USERNAME}` and `${QQTHJ_PASSWORD}`.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill instructs use of embedded credentials without an adequate warning that they are sensitive and should not be hardcoded, reused, or exposed. In context, this is more dangerous because the skill’s primary function is simple price retrieval, so including raw credentials is unnecessary and materially expands the security risk beyond the task itself.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The activation conditions are broad enough that the skill may trigger for general market-analysis or pricing requests without clear user intent to log into a third-party site and export files locally. Overbroad triggering increases the risk of unexpected credential use, unintended browsing actions, and unintended file creation on the system.

Context-Inappropriate Capability

Medium
Confidence
99% confidence
Finding
The skill embeds a real-looking username and password directly in documentation, exposing secrets to anyone who can view or reuse the skill. Hardcoded credentials enable unauthorized access, credential stuffing against the target service, and accidental propagation into logs, version control, or downstream systems.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill requires export to a fixed local path but does not provide a clear upfront warning about filesystem modification, predictable file placement, or overwrite risk. Because the skill automatically exports Excel files, this can lead to silent persistence of potentially sensitive market data and unintended clobbering of user files.

Context-Inappropriate Capability

Low
Confidence
88% confidence
Finding
Mandating a fixed Desktop path writes data to a broader local filesystem location than necessary and can expose exported files to other local users, backup/indexing services, or accidental disclosure. It also increases the chance of overwriting existing files or creating predictable sensitive artifacts on the host.

Static analysis

No suspicious patterns detected.