Back to skill

Security audit

Discover and Connect to 1m+ AI Agents anywhere on the planet

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent, but it needs review because its API key can be sent to a custom server and its install/run path is not reproducibly pinned.

Install only if you are comfortable sending agent searches, chat content, registration profiles, endpoints, session IDs, and any configured API key to the Registry Broker service. Avoid setting REGISTRY_BROKER_BASE_URL unless you fully trust that server, and prefer a reviewed lockfile or pinned local dependencies instead of unpinned npm install/npx execution.

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/index.ts:24
Finding

API Key Disclosure Through an Unrestricted Custom API Base URL

Content
View full analysis
= { Accept: 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'registry-broker-openclaw/0.1.0', }; if (config.apiKey) { headers['x-api-key'] = config.apiKey; } const response = await fetch(url, { method: options.method || 'GET', headers, body: options.body ? JSON.stringify(options.body) : undefined, }); ``` ### Technical Analysis The `REGISTRY_BROKER_BASE_URL` environment variable can replace the trusted default API origin without validation. The program does not parse the configured URL, require HTTPS, restrict the hostname or port, or determine whether credentials are appropriate for the selected origin. The shared `request()` function unconditionally adds `REGISTRY_BROKER_API_KEY` as an `x-api-key` header whenever the key exists. Consequently, a custom base URL receives the Registry Broker credential on every request. Because `dotenv/config` is loaded automatically, values from a local `.env` file may also influence the destination. This creates a credential-confusion issue: a credential intended for `hol.org` can be sent to an unrelated server. Requests may additionally expose search queries, registration profiles, chat messages, agent identifiers, and session identifiers. ### Attack Path 1. An attacker gains the ability to influence the pro ...[truncated 1258 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
package.json:25
Finding

Unpinned npm Dependency Resolution Without a Lockfile

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (40)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx tsx scripts/index.ts vector_search "cryptocurrency trading" 5

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README advertises starting conversations with arbitrary agents and registering agents to external registries, but it does not warn users that their prompts, metadata, URLs, or other supplied content will be transmitted to third-party services. This creates a real risk of unintentional disclosure of sensitive data, credentials, internal URLs, or proprietary information, especially because the skill’s core purpose is cross-registry search and agent-to-agent communication with many external endpoints.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The README instructs users to run npx tsx without pinning a specific package version. This can cause execution of whatever version resolves at install time, increasing supply-chain risk if a compromised or incompatible release is published or if the package is fetched from an unexpected source. In a skill meant to search registries and communicate with external agents, encouraging ad hoc package execution is more dangerous because users may run it with network access and local credentials available.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill invokes code that requires network access and an environment variable API key, but it does not declare any explicit tool scope or allowed tools. That makes the trust boundary unclear and can lead to overbroad execution in hosts that rely on manifest permissions to constrain skill behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill advertises searching, chatting with agents, and registering agents, but it does not clearly warn that user prompts, agent metadata, and possibly session content are transmitted to external services across many registries. This can lead to inadvertent disclosure of sensitive data because users may reasonably assume a local discovery tool rather than a cross-service data-sharing broker.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger phrases are broad, everyday language such as 'talk to an agent' and 'what agents exist for X?', which increases the chance of accidental invocation. In this skill's context, accidental invocation is more dangerous because it can initiate network lookups or conversations with third-party services, causing unintended data disclosure or actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

Using npx tsx without pinning an exact package version allows execution to depend on whatever version is resolved at runtime. In a supply-chain attack or compromised registry scenario, the host could fetch and run unexpected code, which is especially risky because this skill is designed to make networked requests and process user-supplied inputs.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

This command uses unpinned npx tsx, which can pull and execute an arbitrary resolved version at runtime. Because the skill acts as a broker to external registries and conversations, any compromised package execution could expose user data, API keys, or enable full code execution on the host.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The registration flow again depends on npx tsx without version pinning, introducing a supply-chain execution risk at runtime. Since registration includes user-controlled JSON and outbound network activity, compromise here could affect both local execution integrity and external account actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

An unpinned npx tsx invocation in the example flow leaves execution dependent on the package registry state at the time of use. That creates a straightforward supply-chain risk whereby malicious or breaking upstream changes can be executed in the user's environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

This example repeats the same dynamic package-resolution pattern with npx tsx, creating unnecessary exposure to malicious or substituted package versions. In the context of agent chat, that risk is amplified because the command may handle session identifiers, user prompts, and network credentials.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The agent registration example uses unpinned npx tsx, preserving the same supply-chain attack surface during a potentially sensitive operation. If abused, attackers could run arbitrary code or tamper with registration requests and any secrets available to the process.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The troubleshooting guide tells users to run npx tsx scripts/index.ts list_registries without pinning a specific package version. npx may resolve and execute a package version from the network or an unexpected local context, which creates supply-chain risk and reduces reproducibility; if a compromised or incompatible version is pulled, arbitrary code could run on the user's system.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The example instructs users to run npx tsx without pinning an exact package version, which can cause execution of whatever version npx resolves at runtime. If a compromised, malicious, or breaking upstream release is published, users following the documentation may execute unreviewed code on their systems.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command again relies on unpinned npx tsx, so the executed package version is not deterministic and may change over time. In documentation, this creates a supply-chain risk because users are encouraged to fetch and run code directly from the package ecosystem without version control.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The final example repeats the same unsafe pattern of executing npx tsx without a pinned version. Because this skill is a registry-broker that helps users discover and interact with many external agents, normalizing unpinned execution in its examples increases exposure to supply-chain compromise in a high-trust workflow.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/index.ts:36