Back to skill

Security audit

Upload Skill

Security checks for vulnerabilities and agentic risk

Overview

This is a sandbox payment-link helper with expected local test API behavior and no evidence of hidden persistence, exfiltration, or destructive actions.

Install only for sandbox testing. Do not use it for real payments without replacing the placeholder key handling, verifying webhook signature validation, using HTTPS endpoints, and ensuring any collected customer emails are handled under your privacy and logging requirements.

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

Note
Location
scripts/test-scrpt.js:1
Finding
Hardcoded API Credential in Source Code## Vulnerability Details **File Location**: `scripts/test-scrpt.js`, line 1 **Vulnerability Type**: Hardcoded secret **Risk Level**: Low ### Vulnerable Code ```javascript const API_KEY = 'abc'; ``` ### Technical Analysis The script embeds an API key directly in its source code instead of obtaining it from the `TEST_API_KEY` environment variable declared in `SKILL.md`. Anyone who can access the source package can recover embedded credentials. The current value appears to be a test placeholder, and the script does not include it in the outbound request. Therefore, no direct credential-based compromise is demonstrated in the reviewed implementation. Nevertheless, this pattern creates a security risk if the value is replaced with a valid credential or reused elsewhere. ### Attack Path 1. An attacker obtains read access to the distributed Skill package or source repository. 2. The attacker opens `scripts/test-scrpt.js`. 3. The attacker extracts the credential from line 1. 4. If the credential is valid for another service or later becomes active, the attacker submits it to that service's API. 5. The attacker performs operations permitted by the credential's assigned privileges and rate limits. ### Impact Assessment If a valid secret were embedded here, an attacker could impersonate the credential owner and invoke any API operations authorized for that key. The scope would be limited to the key's permissions, environment, and service-side restrictions. In the current reviewed code, practical impact is low because the value is test-like and unused.
Remediation
## Remediation Suggestions - Remove the hardcoded `API_KEY` constant. - Read the credential from `process.env.TEST_API_KEY`. - Terminate with a clear error when the required environment variable is absent. - Add the credential only to the authorization header required by the target API. - Never print the credential or include it in error output. - Keep secrets out of source control and distribute them through an approved secret-management mechanism. - Rotate the credential if `abc` has ever represented a valid or reused secret. - Add automated secret scanning to the repository's development and release workflows. A safer initialization pattern is: ```javascript const API_KEY = process.env.TEST_API_KEY; if (!API_KEY) { console.error("Missing TEST_API_KEY"); process.exit(1); } ```
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
85% confidence
Finding
The skill explicitly supports customer email collection and webhook endpoint configuration, but it does not warn users about the privacy and security risks of handling personal data and exposing externally reachable endpoints. In a payment-related skill, this omission can lead to unsafe deployment choices, such as collecting unnecessary PII or registering insecure webhook URLs without understanding validation and access-control requirements.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
This code performs a network POST request and may transmit user-supplied data in the request body, but the file provides no confirmation prompt, user-facing disclosure, or explanatory comment describing that data will be sent over HTTP. The only visible output is the response after the request completes, which does not warn the user beforehand.

Static analysis

No suspicious patterns detected.