Back to skill

Security audit

Learn Anything Pro

Security checks for vulnerabilities and agentic risk

Overview

The skill is a simple learning-resource helper, but it publishes a payment/API key in its instructions and leaves paid use too loosely scoped.

Review this before installing. The skill appears limited to learning-resource recommendations, but the publisher should revoke and remove the exposed API key and replace it with a proper secret or placeholder. Users should also expect clearer confirmation before any paid SkillPay.me call is made.

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:21
Finding
Hard-Coded API Credential in Skill Documentation## Vulnerability Details **File Location**: `SKILL.md`, line 21 **Vulnerability Type**: Hard-coded secret / plaintext API credential **Risk Level**: High ### Vulnerable Code ```markdown - **API Key**: `sk_3bf4e74479614724623768f5269c68251b09adf555a891eda68dbdfeac108f01` ``` ### Technical Analysis An API-key-shaped credential is embedded directly in a distributable documentation file. Anyone with access to the project package or its source history can retrieve the credential without authentication. The file does not identify the value as an example or nonfunctional placeholder. Because the project contains no executable integration, API endpoint, or credential-scoping configuration, the credential's validity and exact permissions could not be verified. Nevertheless, publishing a potentially active credential violates secret-management and least-exposure practices. ### Attack Path 1. An attacker downloads, clones, or otherwise obtains the Skill package. 2. The attacker opens `SKILL.md` and copies the credential from line 21. 3. The attacker identifies the associated service from the nearby SkillPay.me payment description or through API discovery. 4. If the credential is active, the attacker submits authenticated requests using it. 5. The attacker consumes available quota or paid operations until the key is revoked, restricted, or exhausted. ### Impact Assessment If valid, the credential may permit unauthorized use of its associated service within the key's configured privileges. Potential consequences include unauthorized paid requests, quota consumption, financial loss, service abuse, and request attribution to the legitimate account holder. The maximum scope cannot be established from the audited artifact because it contains no API implementation, endpoint, account configuration, or permission details. No evidence of local code execution, privilege escalation, persistence, or data exfiltration was found.
Remediation
## Remediation Suggestions 1. Revoke and rotate the exposed credential immediately, treating it as compromised. 2. Remove the credential from `SKILL.md` and all other distributed artifacts. 3. Purge the exposed value from version-control history and previously published packages where feasible. 4. Replace the value in documentation with an unmistakable placeholder, such as: ```markdown - **API Key**: Set the `SKILLPAY_API_KEY` secret in your runtime environment. ``` 5. Load credentials at runtime from a protected secret manager or environment variable rather than source-controlled files. 6. Restrict replacement credentials to the minimum required permissions, quota, and billing limits. 7. Add automated secret scanning to pre-commit and CI workflows to prevent recurrence. 8. Review usage and billing logs for unauthorized activity involving the exposed key.
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 (4)

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The skill embeds a live-looking API key/payment secret directly in the markdown for a simple learning-resource recommendation service. Publishing secrets in skill content allows anyone who can read the file to reuse the credential for unauthorized API calls, billing abuse, or account compromise, and the payment-related context makes the exposure especially sensitive.

Ssd 3

High
Confidence
99% confidence
Finding
A plaintext secret is exposed in natural-language skill content, making credential harvesting trivial for any viewer, indexer, or automated scraper. Because the skill is a low-risk educational recommender, this credential is unjustified in exposed content and increases the chance of fraud, quota exhaustion, or unauthorized use.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The usage section lists generic phrases like “我想学习Python编程” and “什么是深度学习?” as examples, but does not define any explicit trigger boundary, invocation mechanism, or exclusion conditions. In a manifest-like skill description, such broad everyday questions can cause unintended activation because they are indistinguishable from normal conversation about learning topics.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
The natural-language content of the skill is entirely Chinese, including headings, usage instructions, and examples, and it does not state that users may choose another language. This can be a language/locale policy issue when the skill effectively forces a specific language without opt-in or justification.

Static analysis

No suspicious patterns detected.