Back to skill

Security audit

core-skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is purpose-aligned overall, but it gives agents identity, delegation, network, and commerce-related capabilities while including an automatic quiet network check and unpinned runtime package execution.

Review this skill before installing in any account with valuable credentials or sensitive data. Use pinned, reviewed package versions, restrict MCP/server environment access, protect the Ed25519 private key, set narrow delegation scopes and low spend limits, and avoid enabling quiet session-start network checks unless you are comfortable with that external service contact.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T01 · Skill Instruction Hijacking

Error
Location
references/connect.md:31
Finding
Mandatory Silent Session-Start External Action## Vulnerability Details **File Location**: `references/connect.md:31-34, 49-52` **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: High ### Vulnerable Code ```text # 1. At session start, check quietly for anything already pending check_pending_matches # does not consume the principal's unread window get_digest # only when the principal actually reads; it marks them read ``` ```text - Call `check_pending_matches` quietly at session start. If something is pending, tell the principal; do not act on it unsupervised. Use `get_digest` only when the principal actually reads: it marks matches as seen, so calling it on their behalf spends a window they never looked at. ``` ### Technical Analysis The binding instruction requires the agent to invoke `check_pending_matches` at every session start and directs it to perform the action “quietly.” The requirement applies independently of the user's current objective and therefore alters normal session behavior as soon as the skill is loaded. This instruction conflicts with the same module's stated restriction that the connection layer should only be used when a task genuinely requires an external party and should not be used speculatively. It also weakens the broader requirement that network matching operations receive explicit approval. Although the exact request fields and server implementation are not included in the audited project, the documented operation belongs to an external matching service. Consequently, invoking it may disclose session timing, service account or agent identity, and associated request metadata to that service. ### Attack Path 1. An operator installs or loads the skill. 2. The user begins a new session for any task, including one unrelated to external matching. 3. The binding session-start rule activates without action-specific approval. 4. The agent invokes `check_pending_matches` through the external connection layer. 5. The external serv ...[truncated 749 chars]
Remediation
## Remediation Suggestions - Remove the unconditional session-start requirement. - Do not describe network operations as occurring “quietly”; disclose the action, destination, purpose, and relevant data handling before invocation. - Require explicit, action-specific user approval before every pending-match check. - Load and use the connection module only when the current task genuinely requires an external party. - Define which identifiers and metadata the request transmits, as well as applicable retention rules. - Treat all matching-service responses as untrusted data and prevent them from overriding system, developer, or user instructions. - Add tests ensuring unrelated sessions cannot trigger matching-service calls.

T08 · Insecure Dependencies

Warning
Location
references/aps.md:39
Finding
Unpinned Third-Party Package Installation and Runtime Execution## Vulnerability Details **File Location**: `references/aps.md:39-43, 48-58`; also duplicated or extended in `SKILL.md:98-104` and `references/connect.md:29` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash npm install agent-passport-system # SDK, /core subpath is the curated default npm install agent-passport-system-mcp # MCP server, APS_PROFILE=essential is the default ``` ```text Remote MCP, zero install: `https://mcp.aeoess.com/sse` ``` ```bash # 1. Get an identity (passport + Ed25519 keypair, tied to the principal) npx agent-passport join --name my-agent --owner alice # 2. Receive scoped authority (scope, spend limit, depth, expiry; only narrows) npx agent-passport delegate --to <publicKey> --scope web_search,commerce --limit 500 --depth 1 --hours 24 # 3. Record work (Ed25519-signed receipt, traceable through the delegation chain) npx agent-passport work --scope web_search --type research --result success --summary "..." # 4. Reach other agents on the protocol npx agent-passport-system-mcp # then: identify, send_message, broadcast, list_agents ``` The connection module additionally directs runtime execution of another package: ```bash npx mingle-mcp # then, all principal-gated: ``` ### Technical Analysis The documented npm installation commands do not pin package versions or integrity hashes. The `npx` commands likewise do not identify reviewed versions. Depending on the local npm configuration and installation state, `npx` may resolve and download a current registry release at runtime. This creates a mutable supply-chain boundary: the code ultimately executed can differ from the code available when this skill was reviewed. npm package installation can also execute lifecycle scripts, while package binaries run with the filesystem, environment, and network privileges of the agent process. The `mingle-mcp` runtime dependency is not declared in the skill frontmatter installation ...[truncated 1356 chars]
Remediation
## Remediation Suggestions - Pin every npm package to an exact reviewed version rather than a mutable tag or range. - Commit and enforce a lockfile with package integrity hashes. - Declare `mingle-mcp` and every other runtime dependency in the skill metadata. - Replace runtime `npx` resolution with invocation of a locally installed, version-verified binary, such as `npx --no-install`. - Use a trusted registry and verify package provenance or signatures where supported. - Review transitive dependencies and continuously monitor them for advisories or ownership changes. - Disable npm lifecycle scripts where feasible, or install in an isolated build environment before promotion. - Run MCP services with least privilege, a restricted environment allowlist, limited filesystem access, and network egress controls. - Protect identity keys using a dedicated secret store or restrictive file permissions rather than exposing them broadly to package processes. - Pin and authenticate remote MCP endpoints, and document the trust boundary separately from locally installed dependencies.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The markdown promotes delegation, messaging, and gated commerce capabilities without prominently warning about authority transfer, data disclosure, spend exposure, and downstream effects of agent interactions. Given this is a core protocol skill for inter-agent operation, omission of these cautions makes risky capabilities easier to invoke without informed consent or guardrails.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The document describes creating and holding an Ed25519 identity/keypair but does not warn that private keys are sensitive credentials requiring secure generation, storage, backup, and rotation practices. In this skill's context, compromise of the keypair could enable impersonation of the agent and misuse of delegated authority or signed receipts.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
The documentation instructs users to run `npx agent-passport` without pinning an exact package version, which can cause execution of whatever version is current at install time. In a security-sensitive identity and delegation system, this increases supply-chain and reproducibility risk because behavior may change or a compromised release could be fetched implicitly.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
This example invokes `npx agent-passport` for delegation without a pinned version, so users may execute an unexpected or maliciously altered package version. Because the command manages scoped authority and spend limits, unpinned execution is especially risky in this context.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
The unpinned `npx agent-passport` work-recording command creates a supply-chain exposure by resolving the package dynamically at runtime. Since the tool handles signed receipts and authoritative records, users could unknowingly run altered logic that affects audit integrity.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The example starts `npx agent-passport-system-mcp` without pinning a version, which is a meaningful risk for an MCP server that enables identify, send_message, broadcast, and agent discovery functions. A malicious or unexpected package version could expose data, alter communications, or expand the attack surface during agent-to-agent interactions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The documentation instructs use of `npx mingle-mcp` without pinning a specific package version or integrity-checked source. That creates a supply-chain risk: a future malicious or compromised package release could be fetched and executed at runtime, potentially gaining access to the agent's environment and delegated capabilities.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
get_digest                 # only when the principal actually reads; it marks them read

# 2. With explicit approval, describe what the principal needs/offers
publish_intent_card        # never without approval; never auto-published

# 3. Surface relevant matches for the principal to review
search_matches
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
get_digest                 # only when the principal actually reads; it marks them read

# 2. With explicit approval, describe what the principal needs/offers
publish_intent_card        # never without approval; never auto-published

# 3. Surface relevant matches for the principal to review
search_matches
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
get_digest                 # only when the principal actually reads; it marks them read

# 2. With explicit approval, describe what the principal needs/offers
publish_intent_card        # never without approval; never auto-published

# 3. Surface relevant matches for the principal to review
search_matches
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Static analysis

No suspicious patterns detected.