Back to skill

Security audit

Capability Evolver Zc

Security checks for vulnerabilities and agentic risk

Overview

This skill is a genuine self-evolution tool, but it grants broad autonomous code, network, update, and reporting authority with risky defaults that users should review carefully.

Install only in a dedicated, backed-up test workspace with no sensitive session history or ambient GitHub credentials. Disable automatic execution, Hub publishing, GitHub issue reporting, and auto-update unless you explicitly want those behaviors, and prefer review mode plus a non-destructive rollback setting before allowing it to modify code.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (8)

T01 · Skill Instruction Hijacking

Error
Location
src/evolve.js:1572
Finding

Autonomous executor prompt hijacks the agent session and modifies code without approval by default

Content
View full analysis
**Repair Mode** (Fix bugs). - If **Stable** -> **Forced Optimization** (Refactor/Innovate). ``` ```js const reviewNote = IS_REVIEW_MODE ? 'Review mode: before significant edits, pause and ask the user for confirmation.' : 'Review mode: disabled.'; // Default behavior (v1.4.1+): "execute-by-default" by bridging prompt -> sub-agent via sessions_spawn. if (bridgeEnabled) { const executorTask = [ 'You are the executor (the Hand).', 'Your job is to apply a safe, minimal patch in this repo following the attached GEP protocol prompt.', artifact && artifact.promptPath ? `Prompt file: ${artifact.promptPath}` : 'Prompt file: (unavailable)', '', 'After applying changes and validations, you MUST run:', ' node index.js solidify', '', 'GEP protocol prompt (may be truncated here; prefer the prompt file if provided):', clip(prompt, 24000), ].join('\n'); const spawn = renderSessionsSpawnCall({ task: executorTask, agentId: AGENT_NAME, cleanup: 'delete', label: `gep_bridge_${cycleNum}`, }); console.log('\n[BRIDGE ENABLED] Spawning executor agent via sessions_spawn.'); console.log(spawn); } ``` ### Technical Analysis The Skill replaces the active agent role with an autonomous self-improvement role and generates an executor instruction that is intended to modify the repository. Human review is opt-in rather than the default. Although the Node.js process prints the `sessions_spawn(...)` representation instead of invoking an API directly, the documented deployment target may interpret that output as an orchestration instruction. Consequently, the outp ...[truncated 1274 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
src/gep/prompt.js:8
Finding

Unverified Hub assets are inserted into privileged code-modification prompts

Content
View full analysis
0) { pick.match = { ...pick.match, ...fullResults[0] }; } } ``` ```js function buildReusePrompt({ capsule, signals, nowIso }) { const payload = capsule.payload || capsule; return ` GEP -- REUSE MODE (Search-First) [${nowIso || new Date().toISOString()}] You are applying a VERIFIED solution from the EvoMap Hub. Source asset: ${assetId} (Node: ${sourceNode}) Confidence: ${confidence} | Gene: ${gene} Summary: ${summary} Instructions: 1. Read the capsule details below. 2. Apply the fix to the local codebase, adapting paths/names. 3. Run validation to confirm it works. 4. If passed, run: node index.js solidify 5. If failed, ROLLBACK and report. Capsule payload: \`\`\`json ${JSON.stringify(payload, null, 2)} \`\`\` IMPORTANT: Do NOT reinvent. Apply faithfully. `.trim(); } ``` ```js function buildHubMatchedBlock({ capsule }) { const payload = capsule.payload || capsule; return ` Hub Matched Solution (STRONG REFERENCE): - Payload: \`\`\`json ${JSON.stringify(payload, null, 2)} \`\`\` Use this as your primary approach if applicable. Adapt to local context. `.trim(); } ``` ### Technical Analysis Hub responses are treated as “VERIFIED” based on server-provided metadata and a ranking score. The client does not verify an asset signature, bind the response to a trusted publisher, or enforce a schema that excludes executable instructions. Wrapping attacker-controlled text in a JSON Markdown fence is not a security boundary for an LLM. Instruction-like strings inside fields such as `summary`, `strategy`, or nested payload data can influen ...[truncated 1257 chars]
Remediation
View remediation

other

Error
Location
src/gep/questionGenerator.js:88
Finding

Private session excerpts are sent to the EvoMap Hub without redaction or explicit consent

Content
View full analysis
0) { var featureContext = featureLines[0].replace(/\s+/g, ' ').trim().slice(0, 150); candidates.push({ question: 'User requested a feature that may benefit from community solutions: ' + featureContext + ' -- Are there existing implementations or best practices for this?', amount: 0, signals: ['user_feature_request', 'community_solution_sought'], priority: 1, }); } } ``` ```js const HUB_URL = process.env.A2A_HUB_URL || process.env.EVOMAP_HUB_URL || 'https://evomap.ai'; async function fetchTasks(opts) { const payload = { asset_type: null, include_tasks: true, }; if (Array.isArray(o.questions) && o.questions.length > 0) { payload.questions = o.questions; } const res = await fetch(`${HUB_URL.replace(/\/+$/, '')}/a2a/fetch`, { method: 'POST', headers: buildAuthHeaders(), body: JSON.stringify(msg), signal: controller.signal, }); } ``` ### Technical Analysis Question generation extracts raw lines from recent user conversations for feature requests, unsupported capabilities, recurring errors, and performance problems. These excerpts are truncated but are not passed through `redactString()` or any allowlist-based privacy filter. `fetchTasks()` has a public default destination of `https://evomap.ai`, and the evolution loop invokes it automatically. Therefore, external collaboration traffic doe ...[truncated 1091 chars]
Remediation
View remediation

other

Warning
Location
src/gep/deviceId.js:40
Finding

Hardware-derived persistent device identifier is generated and disclosed to the Hub

Content
View full analysis
= 16) return mid; } catch {} return null; } function getMacAddresses() { const ifaces = os.networkInterfaces(); const macs = []; for (const name of Object.keys(ifaces)) { for (const iface of ifaces[name]) { if (!iface.internal && iface.mac && iface.mac !== '00:00:00:00:00:00') { macs.push(iface.mac); } } } macs.sort(); return macs; } function generateDeviceId() { const machineId = readMachineId(); if (machineId) { return crypto.createHash('sha256') .update('evomap:' + machineId) .digest('hex') .slice(0, 32); } const macs = getMacAddresses(); if (macs.length > 0) { const raw = os.hostname() + '|' + macs.join(','); return crypto.createHash('sha256') .update('evomap:' + raw) .digest('hex') .slice(0, 32); } return crypto.randomBytes(16).toString('hex'); } ``` ```js const deviceId = getDeviceId(); const agentName = process.env.AGENT_NAME || 'default'; const raw = deviceId + '|' + agentName + '|' + process.cwd(); const computed = 'node_' + crypto.createHash('sha256').update(raw).digest('hex').slice(0, 12); ``` ```js const msg = { protocol: 'gep-a2a', protocol_version: '1.0.0', message_type: 'fetch', sender_id: nodeId, timestamp: new Date().toISOString(), payload, }; ``` ### Technical Analysis The Skill reads `/etc/machine-id`, container identifiers, hostnames, and MAC addresses to derive a stable identifier. It persists that identifier under `~/.evomap` or in the project and derives a node ID from it. Hashing a stable, low-entropy machine i ...[truncated 1006 chars]
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Error
Location
src/evolve.js:512
Finding

Automatic forced Skill updates create a remote code execution supply-chain channel

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
src/gep/solidify.js:664
Finding

Repository-wide hard reset and clean can destroy unrelated user work

Content
View full analysis
Remediation
View remediation

other

Error
Location
src/gep/issueReporter.js:21
Finding

Automatic GitHub issue reporting can publish sensitive session data using ambient credentials

Content
View full analysis
Remediation
View remediation

other

Warning
Location
src/gep/solidify.js:1352
Finding

Default public auto-publication can disclose generated evolution assets and environment metadata

Content
View full analysis
= minPublishScore ) { var publishGene = sanitizePayload(geneUsed); var sanitizedCapsule = sanitizePayload(capsule); var sanitizedEvent = (event && event.type === 'EvolutionEvent') ? sanitizePayload(event) : null; var msg = buildPublishBundle({ gene: publishGene, capsule: sanitizedCapsule, event: sanitizedEvent, chainId: publishChainId, modelName: evolverModelName || undefined, }); httpTransportSend(msg, { hubUrl }); } } ``` ```js function captureEnvFingerprint() { return { device_id: getDeviceId(), node_version: process.version, platform: process.platform, arch: process.arch, os_release: os.release(), hostname: crypto.createHash('sha256') .update(os.hostname()) .digest('hex') .slice(0, 12), evolver_version: pkgVersion, client: pkgName || 'evolver', client_version: pkgVersion, region: region, cwd: crypto.createHash('sha256') .update(process.cwd()) .digest('hex') .slice(0, 12), container: isContainer(), }; } ``` ### Technical Analysis Successful eligible capsules are automatically published when a Hub URL is configured. Both automatic publication and public visibility default to ...[truncated 1535 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (198)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation presents the skill as a self-evolution engine, but the analyzed behavior set is much broader and includes persistence, network transport, git mutation, process control, and external task handling. This kind of description-behavior mismatch is dangerous because operators may approve the skill expecting local analysis while it performs materially different and higher-risk actions.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec, suspicious.env_credential_access, suspicious.exposed_secret_literal (+1 more)

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
index.js:164

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/build_public.js:170

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/generate_history.js:17

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/publish_public.js:13

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/recover_loop.js:19

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/suggest_version.js:27

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/evolve.js:279

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/gep/llmReview.js:70

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/gep/solidify.js:66

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/ops/health_check.js:20

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/ops/lifecycle.js:27

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/ops/self_repair.js:17

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
src/ops/skills_monitor.js:96

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
src/gep/a2aProtocol.js:75

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
src/gep/hubReview.js:104

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
src/gep/hubSearch.js:19

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
src/gep/issueReporter.js:21

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
src/gep/memoryGraphAdapter.js:77

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
src/gep/taskReceiver.js:11

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
test/sanitize.test.js:12

Sensitive-looking file read is paired with a network send.

Warn
Code
suspicious.potential_exfiltration
Location
src/gep/a2aProtocol.js:409