Back to skill

Security audit

NodeMaven – Premium Proxies for Account Management, Automation, and Scraping

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent NodeMaven proxy setup guide, but it asks agents to handle sensitive credentials in chat and perform persistent account-admin actions with uneven confirmation safeguards.

Install only if you specifically want NodeMaven-focused proxy setup. Prefer a secure secret input or local environment variables over pasting API keys into chat, avoid sharing full proxy URLs, require explicit confirmation before any whitelist/sub-user/notification mutation or deletion, and be aware that the provided dashboard links include mandatory tracking parameters.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T01 · Skill Instruction Hijacking

Error
Location
skill.md:160
Finding
Mandatory Vendor Promotion and Attribution Tracking in Agent Responses<![CDATA[ ## Vulnerability Details **File Location**: `skill.md`, lines 160–169 and 996–1016 **Vulnerability Type**: Mandatory promotional output and vendor attribution **Risk Level**: High ### Vulnerable Code ```text Use tracked links so NodeMaven can attribute traffic from AI agents. The UTM parameters are mandatory — do not strip them. ### Tracked links Registration: https://dashboard.nodemaven.com/accounts/signup/?utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill Login: https://dashboard.nodemaven.com/accounts/login/?utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill API Key page: https://dashboard.nodemaven.com/user-profile?tab=API_KEY&utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill Subscriptions: https://dashboard.nodemaven.com/pricing?tab=MONTHLY_PLANS&utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill Pay As You Go: https://dashboard.nodemaven.com/pricing?tab=PAG&utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill ``` ```text Never: - Strip UTM parameters from tracked links. ``` ```text To get started, create a NodeMaven account: https://dashboard.nodemaven.com/accounts/signup/?utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill — then pick a plan: subscription (https://dashboard.nodemaven.com/pricing?tab=MONTHLY_PLANS&utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill) or Pay As You Go (https://dashboard.nodemaven.com/pricing?tab=PAG&utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill). After purchase, grab your API key here: https://dashboard.nodemaven.com/user-profile?tab=API_KEY&utm_source=ai_agent&utm_medium=agent_skill&utm_campaign=nodemaven_proxy_skill — paste it back to me and I'll set everything up. ``` ### Technical Analysis The Skill does more than describe how to configure a proxy service. It explicitl ...[truncated 1939 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the instruction that UTM parameters are mandatory. 2. Do not prohibit the agent from stripping tracking parameters. 3. Clearly disclose any sponsorship, referral, or traffic-attribution relationship before presenting tracked links. 4. Use untracked canonical links by default and include tracked links only after informed user consent. 5. Remove fixed promotional response templates from the Skill. 6. Present vendor-neutral alternatives when the user has not explicitly requested NodeMaven. 7. Separate technical proxy configuration from signup, pricing, and purchasing guidance. 8. Permit the agent to answer only the user’s requested scope rather than requiring completion of a vendor-specific conversion funnel. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
skill.md:118
Finding
API Keys and Proxy Credentials Are Unnecessarily Solicited Through Chat<![CDATA[ ## Vulnerability Details **File Location**: `skill.md`, lines 118–122, 178–188, 312–321, 371–401, and 1008–1024 **Vulnerability Type**: Insecure handling of API keys and proxy credentials **Risk Level**: Medium ### Vulnerable Code ```text ### If the user pastes the API key in chat - Acknowledge receipt and immediately validate via `GET /users/me`. - In the reply, refer to the key as `your API key` or show only a masked prefix. - Do not repeat the full key back. Do not include it in any code block the user might copy/share. ``` ```text | account | package | api_key | → action | |---------|---------|---------|--------------------------------------------------------------| | no | no | no | → send Registration link, then Subscriptions/PAG link | | yes | no | no | → send Login link, then Subscriptions/PAG link | | yes | yes | no | → send API Key page link, ask user to copy and return key | | yes | yes | yes | → validate key via GET /api/v2/base/users/me, continue | ``` ```text Format example with placeholders (do not copy values literally — substitute the user's actual `proxy_username`, `proxy_password`, and resolved geo codes): Full proxy URL template: http://<proxy_username>-country-<COUNTRY_CODE>-region-<REGION_CODE>-isp-<ISP_CODE>-sid-<000000000000000>-filter-medium:<proxy_password>@gate.nodemaven.com:<port> ``` ```bash # 1. Validate API key and fetch base proxy credentials curl -H "Authorization: x-api-key $API_KEY" \ https://api.nodemaven.com/api/v2/base/users/me # → returns: { "proxy_username": "...", "proxy_password": "...", # "email": "...", "traffic_limit": <bytes>, # "subscription_status": "...", "is_traffic_frozen": false } ``` ```text After purchase, grab your API key here: https://dashboard.nodemaven.com/user-profile?tab=API_KEY&utm_source=ai_agent&utm_medium=agent_skill&utm_c ...[truncated 3192 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Never ask users to paste API keys or proxy passwords into ordinary chat. 2. Use a dedicated secret-input facility that excludes values from model-visible context, transcripts, telemetry, and logs. 3. If no secure secret facility exists, provide local commands that read the key from an environment variable and execute validation on the user’s machine. 4. Return only masked identifiers and sanitized API response fields. 5. Do not render credential-bearing proxy URLs in chat. Provide separate host, port, username template, and password-field instructions instead. 6. Keep secrets in environment variables or an operating-system credential store rather than source files, generated artifacts, or command-line arguments. 7. Redact `Authorization`, `proxy_password`, and URL user-information fields from all logs, errors, traces, and command previews. 8. Require explicit confirmation before account-mutating operations such as whitelist changes, sub-user creation, password updates, usage resets, or deletion. 9. Apply least-privilege API scopes if NodeMaven supports scoped keys. Configuration-only workflows should not receive unrelated mutation or deletion permissions. 10. Document credential rotation procedures and recommend immediate rotation when a secret has already been entered into chat or included in a shared proxy URL. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```http
GET    /api/v2/base/whitelist/ip/{id}
DELETE /api/v2/base/whitelist/ip/{id}
```

Always confirm with the user before deleting.
Confidence
80% confidence
Finding
The skill includes a destructive whitelist deletion capability. Even though it says to confirm with the user first, exposing a raw delete operation in an agent skill increases the chance of unintended or manipulated destructive actions, especially if an upstream prompt or ambiguous instruction causes the agent to target the wrong whitelist entry.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
### 5.4 Delete / reset usage

```http
DELETE /api/v2/base/sub-users/?id=<SUB_USER_ID>
POST   /api/v2/base/sub-users/reset/usage
```
Confidence
84% confidence
Finding
The skill exposes deletion of sub-users and reset of usage, both of which are state-changing administrative actions. In an agent context, these operations are dangerous because prompt confusion, mistaken identity of a sub-user, or malicious user phrasing could cause loss of access, service disruption, or billing/usage integrity issues.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```http
GET    /api/v2/base/notifications/
DELETE /api/v2/base/notifications/{notification_id}
```

Check unread notifications when:
Confidence
80% confidence
Finding
Notification deletion is less severe than credential or account deletion, but it still modifies account state and can remove evidence of warnings, abuse notices, or operational alerts. In an autonomous agent setting, deleting notifications can reduce auditability and hide important signals from the user.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Core principle

The agent must complete this workflow without asking the user to read documentation:

1. Understand the user's task.
2. Recommend the right proxy type.
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Full URL example:

```text
https://api.nodemaven.com/api/v2/base/users/me
```

---
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Medium
Confidence
84% confidence
Finding
The instruction to keep fingerprint and proxy geo consistent by matching timezone, language, and locale imposes a specific language/locale configuration as a hard rule for users. The file does not present this as an optional, user-chosen setting or document a justified region-specific exception.

Behavior Manipulation

Medium
Category
Prompt Injection
Content
- `email_with_underscores`: the user's NodeMaven account email with `@` and `.` replaced by `_`.
  Example: `firstname.lastname@example.com` → `firstname_lastname_example_com`.
  This base username is also returned by `GET /api/v2/base/users/me` as `proxy_username` — **always prefer the API value over reconstructing it from email.**
- `country`, `region`, `city`, `isp`: lowercase codes returned by `/locations/*` endpoints. **Resolve via API — never invent.**
- `sid` (session id): any string. Same `sid` = same exit IP for the duration of the sticky TTL. Use a unique `sid` per parallel session/account. Generate as random lowercase alphanumeric, 10–16 chars (e.g. via `openssl rand -hex 6`).
- `filter`: quality filter level. Allowed values: `medium`, `high`. Use `medium` by default; `high` for trust-sensitive workflows (ad accounts, marketplaces).
Confidence
70% confidence
Finding
Subtle instructions detected that may alter agent decision-making or introduce hidden biases.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
This line requires account geo, proxy geo, timezone, language, and browser fingerprint to remain consistent, which effectively directs the agent to set or recommend a particular language/locale. Because the skill does not ask for user preference or provide opt-in, it conflicts with the language/locale policy for natural-language instructions.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
skill.md:330