Back to skill

Security audit

neuropay

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent NeuroPay API integration, but it gives an agent broad marketplace, account, review, order, and file-transfer authority with weak consent and scoping around automatic account creation and uploads.

Review before installing. This skill should only be used if you are comfortable with an agent taking actions against a NeuroPay account, including creating a bot account, posting ratings or reviews, placing orders, uploading files, and downloading ZIPs. Require explicit confirmation for registration, orders, public marketplace actions, and every file upload/download, and do not run the sample registration command with the shown test123 credentials.

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:76
Finding

Predictable Hardcoded Credentials in Bot Registration Example

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 76–82
Vulnerability Type: Hardcoded weak credentials
Risk Level: Medium

Vulnerable Code

bash
curl -X POST "https://neuropay.fr/api/register-bot/" \
-H "Content-Type: application/json" \
-d '{
  "username": "test123",
  "password": "test123"
}'

Technical Analysis

The directly executable bot-registration example uses the public and predictable value test123 for both the username and password. This conflicts with the bootstrap instructions at lines 59–61, which require a random username and a cryptographically secure random password.

Agents or users may execute examples literally. If the registration endpoint accepts these credentials, the resulting account would be protected by a password disclosed in the public Skill documentation. An attacker would not need to derive or steal the password; they could reproduce it directly from the file.

Although the API key is intended to remain in session memory, weak account credentials may provide a separate account-takeover route if NeuroPay supports credential-based login or account recovery. The precise server-side access available after login cannot be established from the audited files.

Attack Path

  1. A user or agent copies and executes the documented registration command.
  2. NeuroPay registers a bot account using test123 as its password.
  3. An attacker identifies or guesses the documented username and submits the publicly known password to any applicable NeuroPay authentication interface.
  4. If credential-based authentication is available and no compensating control blocks access, the attacker takes control of the bot account.
  5. The attacker may perform actions permitted to that account, potentially including marketplace, order, review, profile, or file operations.

Impact Assessment

Successful exploitation could result in unauthorized access to the affected bot accou ...[truncated 351 chars]

Remediation
View remediation

Remediation Suggestions

  • Remove all usable literal credentials from the registration example.
  • Generate usernames and passwords at runtime with a cryptographically secure random-number generator.
  • Require sufficient password entropy, such as at least 128 bits of random data.
  • Use placeholders that cannot be mistaken for valid credentials, and explicitly state that static example values must never be submitted.
  • Keep the generated password and returned API key only in protected runtime memory and redact them from logs, errors, and command histories.
  • If password-based login is unnecessary after API-key issuance, disable it or rotate and securely escrow the credential according to the service's account lifecycle requirements.
  • Add validation that rejects known sample passwords such as test123.

A safer conceptual example is:

python
import secrets

username = "bot_" + secrets.token_urlsafe(12)
password = secrets.token_urlsafe(32)

The generated values should then be sent through an API client without printing or persisting them.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill gives conflicting instructions for missing credentials: one section says to prompt the user securely for an API key, while another says to automatically register a new bot account and generate credentials internally. That contradiction can cause an agent to create external accounts and transmit generated credentials without explicit user approval, leading to unexpected side effects and unauthorized account creation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill omits a clear warning that, if no API key is present, it may automatically create a remote NeuroPay account using generated credentials. Users may believe the skill only consumes an existing credential, when in fact it can trigger account creation and external data transmission without informed consent.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The skill explicitly instructs the agent to send data to an external service, including generated usernames and passwords for bot registration. External transmission is expected for an API integration, but here it becomes security-relevant because the skill combines credential generation, automatic registration behavior, and limited user notice about that outbound action.

Content

Scanner excerpt · SKILL.md (reported line 77)May include surrounding context.

bash
curl -X POST "https://neuropay.fr/api/register-bot/" \
-H "Content-Type: application/json" \
-d '{
  "username": "test123",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill supports uploading files and delivering work to an external API but does not warn that local files or generated artifacts will be transmitted off-system. In an agent context, that omission increases the risk of accidental exfiltration of sensitive files, proprietary outputs, or personal data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The ZIP download instruction writes remote content directly to the local filesystem without warning the user. While lower severity than exfiltration, it can still introduce unreviewed external files into the environment and create overwrite, storage, or downstream processing risks.

Content

No source excerpt is available for this finding.