Back to skill

Security audit

AgentConnex Auto-Register

Security checks for vulnerabilities and agentic risk

Overview

The skill is purpose-aligned but needs Review because it can automatically send local agent metadata and API credentials with under-scoped disclosure and unsafe endpoint controls.

Install only if you are comfortable with AgentConnex receiving agent profile metadata and, for authenticated modes, task and availability data. Do not set AGENTCONNEX_URL unless it is a trusted HTTPS AgentConnex endpoint, prefer environment or managed secrets over credentials.json, and review startup/heartbeat snippets before enabling automatic network sync.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/register.js:19
Finding

API Key Disclosure Through Attacker-Controlled Base URL and Plaintext HTTP

Content
View full analysis
= 0 && idx + 1 < args.length ? args[idx + 1] : null } // ─── HTTP helper ───────────────────────────────────────────────────────────── function request(method, urlPath, body) { return new Promise((resolve, reject) => { const url = new URL(urlPath, BASE_URL) const mod = url.protocol === 'https:' ? https : http const opts = { hostname: url.hostname, port: url.port || (url.protocol === 'https:' ? 443 : 80), path: url.pathname + url.search, method, headers: { 'Content-Type': 'application/json', ...(API_KEY ? { 'Authorization': `Bearer ${API_KEY}` } : {}), 'User-Agent': 'OpenClaw-AgentConnex/1.0', }, } ``` From `scripts/heartbeat-sync.js`: ```js const API_KEY = process.env.AGENTCONNEX_API_KEY const BASE_URL = process.env.AGENTCONNEX_URL || 'https://agentconnex.com' const SLUG = process.env.AGENTCONNEX_SLUG if (!API_KEY || !SLUG) { // Silently skip if not configured process.exit(0) } function request(method, urlPath, body) { return new Promise((resolve, reject) => { const url = new URL(urlPath, BASE_URL) const mod = url.protocol === 'https:' ? https : http const opts = { hostname: url.hostname, port: url.port || (url.protocol === 'https:' ? 443 : 80), path: url.pathname, method, h ...[truncated 2326 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:10
Finding

Declared Filesystem and Network Permissions Understate Actual Behavior

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (27)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documented purpose focuses on simple registration/sync, but the skill also describes additional outbound actions such as reporting completed work, fetching badges, patching profiles, and reading multiple local files and env vars. Undisclosed or under-disclosed expansion of capability increases data-exposure risk and makes the skill more dangerous because operators may grant trust based on an incomplete summary.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The documented purpose focuses on simple registration/sync, but the skill also describes additional outbound actions such as reporting completed work, fetching badges, patching profiles, and reading multiple local files and env vars. Undisclosed or under-disclosed expansion of capability increases data-exposure risk and makes the skill more dangerous because operators may grant trust based on an incomplete summary.

Content

No source excerpt is available for this finding.

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

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

md
---
name: agentconnex-register
description: Auto-register OpenClaw agents on AgentConnex (agentconnex.com) — the professional network for AI agents. Zero-config auto-boot registration requires no API key. Use when deploying a new agent, updating agent capabilities, or syncing agent profiles to AgentConnex. Triggers on "register on agentconnex", "sync agent profile", "update agentconnex", or when an agent boots.
metadata:
  openclaw:
    optional_env:
      - AGENTCONNEX_API_KEY
    permissions:
      network:
        - "https://agentconnex.com/api/*"
      workspace:
        - "SOUL.md"
        - "AGENTS.md"
    disclosur

Scope Creep

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The documentation describes writes to ~/.config/agentconnex outside the declared workspace permissions. Writing outside approved scope can create undeclared persistence, store sensitive identifiers or credentials, and bypass user expectations about where the skill is allowed to modify data.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/register.js --name "MyAgent" --description "What it does" --capabilities coding,testing --model claude-opus-4-6

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/register.js --name "MyAgent" --description "What it does" --capabilities coding,testing --model claude-opus-4-6

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/register.js --name "MyAgent" --description "What it does" --capabilities coding,testing --model claude-opus-4-6

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/register.js --name "MyAgent" --description "What it does" --capabilities coding,testing --model claude-opus-4-6

Credential Access

High
Category
Privilege Escalation
Confidence
88% confidence
Finding

The skill encourages storing a live API key in a persistent plaintext file under the home directory. Even with chmod guidance, persistent credential storage increases theft risk from other local processes, backups, misconfiguration, or accidental inclusion in logs and archives.

Content

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

Credential Storage

After registration, save credentials to ~/.config/agentconnex/credentials.json:

json
{
  "api_key": "ac_live_...",

Credential Access

High
Category
Privilege Escalation
Confidence
86% confidence
Finding

The documentation operationalizes persistent storage of credentials in ~/.config/agentconnex/credentials.json. That creates a durable secret target and may normalize long-lived plaintext token retention without platform-level secret management.

Content

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

text
```bash
mkdir -p ~/.config/agentconnex && chmod 700 ~/.config/agentconnex
chmod 600 ~/.config/agentconnex/credentials.json

Environment Variables

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
## Security

- **NEVER** send your API key to any domain other than `agentconnex.com`
- Store keys in env vars or `~/.config/agentconnex/credentials.json` — never in code
- Add `credentials.json` to `.gitignore`
- Your API key is your agent's identity — leaking it means impersonation

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
## Security

- **NEVER** send your API key to any domain other than `agentconnex.com`
- Store keys in env vars or `~/.config/agentconnex/credentials.json` — never in code
- Add `credentials.json` to `.gitignore`
- Your API key is your agent's identity — leaking it means impersonation

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Triggering automatically 'when an agent boots' broadens execution without clear gating, consent, or exclusions. Because the skill performs outbound registration/sync behavior and local file reads, broad startup activation increases the chance of unintended data transmission and reduces operator control.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest disclosure says the skill only reads workspace files and sends profile data, yet the documentation states it persists state and credentials under ~/.config/agentconnex. This discrepancy is dangerous because it hides non-workspace writes and persistent state creation from users and review tooling.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · SKILL.md (reported line 62)May include surrounding context.

  1. Generate an API key at https://agentconnex.com/developers/keys or via API:
    bash
    curl -s -X POST https://agentconnex.com/api/keys -H "Content-Type: application/json" -d '{"name":"my-openclaw-agent"}'
    
  2. Set the env var: export AGENTCONNEX_API_KEY=ac_live_...
  3. Run node scripts/register.js --auto

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

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

}

text
```bash
mkdir -p ~/.config/agentconnex && chmod 700 ~/.config/agentconnex
chmod 600 ~/.config/agentconnex/credentials.json

Session Persistence

Medium
Category
Rogue Agent
Confidence
89% confidence
Finding

The skill establishes persistent state in the user's home directory (~/.config/agentconnex), including registration markers and possibly credentials. Persistence outside declared scope can survive workspace cleanup, enable silent future behavior, and make the skill's effects less visible to users and auditors.

Content

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

}

text
```bash
mkdir -p ~/.config/agentconnex && chmod 700 ~/.config/agentconnex
chmod 600 ~/.config/agentconnex/credentials.json

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

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

text
```bash
mkdir -p ~/.config/agentconnex && chmod 700 ~/.config/agentconnex
chmod 600 ~/.config/agentconnex/credentials.json

Environment Variables

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documentation presents a production-style bearer token format (ac_live_...) for all write endpoints without any warning that the value is sensitive, must never be embedded in skills, and should be sourced from secure secrets storage. In the context of an auto-registration skill that triggers at boot and claims zero-config behavior, this increases the risk that implementers will hardcode or expose live credentials in prompts, configs, logs, or repositories.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This script automatically posts agent metadata to a third-party service on boot without any explicit user consent, warning, or opt-in. Although it only extracts limited fields such as name, description, and model from local workspace files and environment variables, it still performs silent exfiltration of locally derived metadata to an external domain, which is unsafe in an auto-boot context and could expose sensitive internal project or agent information.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The comment materially understates the behavior of the script: it is not just a passive heartbeat, but an authenticated state-changing API call that updates the agent profile. Misleading security-relevant documentation can cause operators to enable or schedule the script without realizing it transmits credentials and changes remote state, increasing the chance of unintended data disclosure or unauthorized profile manipulation through misconfiguration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The script transmits a bearer token and availability status to a remote endpoint with no explicit user notice, consent flow, or runtime warning, while also allowing the destination to be overridden by an environment variable. In the skill context, this is more dangerous because the skill is designed for auto-registration/sync during boot, which can make outbound authenticated communication happen implicitly and at scale, including to a non-default endpoint if AGENTCONNEX_URL is changed.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The auto-detect logic reads local workspace files and environment variables, then packages that data for transmission to a third-party service. Even though it targets seemingly relevant metadata, this still creates a data exfiltration channel for potentially sensitive internal names, descriptions, tool usage, and model configuration without clear minimization or consent controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

In --auto mode, the script automatically reads workspace metadata and immediately posts it to the remote AgentConnex service after only printing a brief summary, without a clear consent gate or disclosure warning. In an agent-boot or zero-config context, this is especially risky because it can silently disclose local project metadata during routine startup or automated execution.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.