Back to skill

Security audit

Neon

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward Neon CLI helper, but users should be careful with account credentials and delete/reset commands.

Install only if you intend to manage Neon resources from this environment. Treat Neon API keys and connection strings as secrets, avoid exposing them in shared terminals or logs, and double-check project, branch, database, and role IDs before running delete or reset commands. Consider pinning a reviewed neonctl version or using a controlled project-local install if supply-chain repeatability matters.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:6
Finding
Unpinned Global npm Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 6 and 12 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippets**: ```yaml install_command: "npm i -g neonctl" ``` ```bash npm i -g neonctl ``` ### Technical Analysis The Skill instructs users to install `neonctl` globally without specifying an exact package version or integrity value. Because npm resolves the mutable latest version, the code installed in the future may differ from the version reviewed when this Skill was published. npm packages can execute lifecycle scripts during installation. If the package registry account, package release process, or an upstream dependency is compromised, malicious installation code could execute with the privileges of the user running npm. The global `-g` installation increases exposure beyond the project directory and may modify user-wide executable or package locations. The audit found no evidence that `neonctl` is currently malicious. The vulnerability is the absence of dependency pinning and integrity or provenance controls. ### Attack Path 1. An attacker compromises the `neonctl` publishing account, release pipeline, or relevant dependency chain. 2. The attacker publishes a malicious version that is selected as the latest compatible package release. 3. A user or agent follows the Skill instruction and runs `npm i -g neonctl`. 4. npm downloads the mutable package release and its dependency tree. 5. Malicious package code or lifecycle scripts execute with the invoking user's privileges. 6. The attacker may access data available to that user or alter user-wide npm executables and files permitted by the installation environment. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the user performing the installation. Potential scope includes that user's files, environment variables, credentials accessible ...[truncated 268 chars]
Remediation
## Remediation Suggestions - Pin `neonctl` to a reviewed exact version, for example `npm install --global neonctl@X.Y.Z`, rather than resolving the latest release. - Verify package provenance, publisher identity, release signatures or attestations, and registry integrity metadata before installation. - Prefer a project-local, lockfile-controlled installation where practical, and invoke it through a controlled package script or `npm exec`. - Disable npm lifecycle scripts during installation when they are not required, after confirming that the package functions correctly without them. - Perform installation without elevated privileges and use a dedicated, least-privileged environment. - Establish a controlled update process in which new versions are reviewed and tested before changing the pinned version.
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
84% confidence
Finding
The skill instructs users to authenticate with `neonctl auth` and documents `--api-key <key>` usage, but does not warn that credentials may grant access to Neon resources and should be handled carefully. Markdown guidance should disclose behaviors affecting privacy or account security when credentials are involved.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
This markdown file lists irreversible operations such as deleting projects, branches, and databases, as well as resetting branches, but provides no warning about potential data loss or impact to live resources. For markdown skills, the description should disclose behaviors that can affect user data or system integrity.

Static analysis

No suspicious patterns detected.