Back to skill

Security audit

NocoDB Skiils

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed NocoDB management skill that can make real database, permission, attachment, and API-token changes, so it should be used carefully but does not show hidden or malicious behavior.

Install only if you trust the NocoDB endpoint and token scope. Use a least-privilege NocoDB token, avoid running destructive commands unless the target IDs are verified, treat token commands as security administration, and upload only files you intend to send to that NocoDB server.

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

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/nocodb.sh:7
Finding

Unrestricted NocoDB Endpoint Can Expose API Credentials and Uploaded Files

Content
View full analysis
&2; exit 1; } # Verbose helper - shows resolved IDs _v() { [[ "$NC_VERBOSE" == "1" ]] && echo "→ $*" >&2 || true; } ############################################################################### # HTTP helpers ############################################################################### _get() { curl -sS -H "xc-token: $NC_TOKEN" "$NC_URL/api/v3/$1"; } _post() { curl -sS -X POST -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" -d "${2:-}"; } _patch() { curl -sS -X PATCH -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" -d "${2:-}"; } _put() { curl -sS -X PUT -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" -d "${2:-}"; } _delete() { curl -sS -X DELETE -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" ${2:+-d "$2"}; } _upload() { curl -sS -X POST -H "xc-token: $NC_TOKEN" -F "file=@$2" "$NC_URL/api/v3/$1"; } ``` The configurable endpoint is also documented without any HTTPS-only or trusted-host restriction at `SKILL.md:34-36`: ```bash export NOCODB_TOKEN="your-api-token" export NOCODB_URL="https://app.nocodb.com" # optional, this is default export NOCODB_VERBOSE=1 # optional, shows resolved IDs ``` ### Technical Analysis `NOCODB_URL` is trusted directly as the destination for every HTTP request. The script does not validate its scheme, hostname, port, or relationship to an expected NocoDB deployment. It consequently permits cleartext HTTP and arbitrary attacker-controlled destinations. Every request transmits the privileged ...[truncated 1881 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
README.md:9
Finding

Unpinned npm Package Is Downloaded and Executed During Installation

Content
View full analysis
Remediation
View remediation
add nocodb/agent-skills ``` 2. Where supported, verify package integrity through a lockfile, npm integrity metadata, a trusted checksum, or a signed release. 3. Avoid using `npx` with an unpinned package in privileged or sensitive environments. 4. Document the expected package name, publisher, version, and verification procedure so users can detect dependency confusion or ownership changes. 5. Consider providing a non-executing installation method that downloads a versioned release artifact and verifies its checksum before placing the skill files in the required directory. 6. Periodically review and update the pinned version through a controlled dependency-update process. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (11)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- **Linux / macOS**: `scripts/nocodb.sh` (Bash, requires `curl` and `jq`)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script can create and revoke API tokens, which is a credential-management function with security impact beyond ordinary table/record operations. In the context of a general database-management skill, this expands privilege and could be abused to mint long-lived access or disable access by deleting tokens, especially if an agent is granted this skill broadly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The README instructs users to run npx skills add nocodb/agent-skills without pinning an exact package version. This causes execution of whatever package version is current at install time, which introduces a supply-chain risk if a malicious or compromised update is published or if behavior changes unexpectedly.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill exposes shell-capable behavior through documented CLI usage and required binaries (curl, jq) but does not declare any explicit tool scope such as permissions or allowed-tools. That increases the chance an agent can invoke broader shell actions than intended, reducing containment and making misuse harder to govern or audit.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill documents destructive operations such as delete, update, member changes, and token deletion without any warning, dry-run guidance, or confirmation pattern. In an agent setting, this can lead to accidental or prompt-induced irreversible modifications to databases, permissions, or collaboration settings.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The attachment upload command sends a local file path to the remote NocoDB service without any privacy, sensitivity, or transfer warning. In an agent context, users may not realize that local files could contain secrets or regulated data, creating a risk of unintended exfiltration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill includes API token creation and deletion commands without highlighting that tokens are sensitive credentials granting API access. This omission is dangerous because agents or users may create, mishandle, or revoke tokens without understanding the security impact, potentially causing credential exposure or service disruption.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/nocodb.sh (reported line 19)May include surrounding context.

sh
###############################################################################
# HTTP helpers
###############################################################################
_get()    { curl -sS -H "xc-token: $NC_TOKEN" "$NC_URL/api/v3/$1"; }
_post()   { curl -sS -X POST -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" -d "${2:-}"; }
_patch()  { curl -sS -X PATCH -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" -d "${2:-}"; }
_put()    { curl -sS -X PUT -H "xc-token: $NC_TOKEN" -H "Content-Type: application/json" "$NC_URL/api/v3/$1" -d "${2:-}"; }

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The helper functions send the NOCODB_TOKEN in HTTP headers and may upload local file contents or record data to a remote NocoDB instance, but the code does not emit any user-facing notice when these transmissions occur. For a CLI that can target arbitrary NOCODB_URL endpoints, the absence of explicit disclosure can obscure privacy and data-handling implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This shell script exposes multiple destructive operations such as workspace deletion and issues the DELETE request directly after basic argument validation. There is no confirmation prompt, no explicit warning message before execution, and no inline disclosure that these commands irreversibly remove remote resources and data.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill metadata describes database access and management, but the implemented commands also support listing, creating, and deleting NocoDB API tokens. That omission hides a privileged security-administration capability from users and reviewers, which can lead to accidental credential issuance or revocation beyond the expected scope of a database-management skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.