Back to skill

Security audit

Agent3 Hub

Security checks for vulnerabilities and agentic risk

Overview

The skill appears purpose-aligned as a remote MCP hub, but it asks users to run an unpinned downloaded package and send API-keyed requests to a broad third-party resource registry.

Review this skill before installing. Use it only if you trust Agent3 and the downstream resources you invoke, avoid sending secrets or regulated data through queries, store the API key carefully, and prefer a pinned or locally reviewed mcp-remote installation instead of the unpinned npx -y setup.

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

T08 · Insecure Dependencies

Warning
Location
SKILL.md:29
Finding
Unpinned npm Package Automatically Downloaded and Executed## Vulnerability Details **File Location**: `SKILL.md`, lines 29-31 **Vulnerability Type**: Unpinned third-party package execution **Risk Level**: Medium ```json { "command": "npx", "args": ["-y", "mcp-remote", "https://hub.agent3.me/api/mcp"], "env": { "AGENT3_API_KEY": "a2a_your_key_here" } } ``` ### Technical Analysis The recommended configuration invokes `mcp-remote` through `npx -y` without specifying an exact package version. If the package is absent from the local npm cache, `npx` can retrieve the version currently resolved by the configured npm registry and execute it immediately. The `-y` option suppresses the installation confirmation. Consequently, the code executed on a user's system is not immutable at review time. A compromised npm publisher account, malicious future release, registry compromise, or compromised transitive dependency could introduce arbitrary code. This is a supply-chain weakness; the audited document itself contains no confirmed malicious payload. ### Attack Path 1. An attacker compromises the `mcp-remote` package, one of its dependencies, its publisher account, or the package distribution channel. 2. The attacker publishes or causes npm to resolve a malicious package version. 3. A user applies the documented MCP configuration and starts the client. 4. `npx -y` downloads the unpinned package without requesting confirmation. 5. The malicious package executes with the operating-system privileges and environment available to the MCP client. 6. It can attempt to read accessible files and environment variables, alter user-writable data, establish network connections, or misuse credentials available to that process. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the account running the MCP client. The accessible scope may include user-readable files, user-writable configuration, network access, and environment variables inherited by the process. Credentials supplied to or i ...[truncated 315 chars]
Remediation
## Remediation Suggestions 1. Pin `mcp-remote` to a reviewed exact version rather than relying on the registry's current resolution: ```json { "command": "npx", "args": [ "--yes", "mcp-remote@<reviewed-exact-version>", "https://hub.agent3.me/api/mcp" ] } ``` 2. Prefer installing the package in a controlled project with a committed lockfile and verified integrity metadata, then invoke the locally installed executable. 3. Review the pinned package, its install scripts, and its complete transitive dependency tree before deployment. 4. Use an approved registry or internal package mirror with package provenance and integrity verification. 5. Run the MCP process in a sandbox or dedicated low-privilege account with minimal filesystem, environment, and network access. 6. Expose only credentials required for the operation, use a narrowly scoped API key where supported, and rotate the key if package compromise is suspected. 7. Establish a deliberate dependency-update process so new versions are reviewed and tested before adoption.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill routes user queries and tool invocations to a remote third-party MCP endpoint, but the description does not clearly warn users that their prompts, queries, and potentially sensitive data will be transmitted off-platform. In a registry/invocation hub, this matters more because the service can broker access to many downstream resources, increasing uncertainty about where user data may ultimately go.

External Transmission

Medium
Category
Data Exfiltration
Content
### Direct HTTP (curl)

```bash
curl -X POST https://hub.agent3.me/api/mcp \
  -H "Authorization: Bearer $AGENT3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
88% confidence
Finding
The curl example demonstrates direct external transmission of user-supplied queries and an Authorization bearer token to a remote service. This is expected functionality for an MCP integration, but it is still security-relevant because users may not realize their inputs and metadata leave the local environment and are handled by a third party.

External Transmission

Medium
Category
Data Exfiltration
Content
## Example: Search Telegram Content

```bash
curl -X POST https://hub.agent3.me/api/mcp \
  -H "Authorization: Bearer $AGENT3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
90% confidence
Finding
The example sends a Telegram content search request through the remote hub, which may cause user queries to be transmitted not only to the hub but also to downstream integrated services. The skill context makes this more sensitive because it advertises search across external platforms and arbitrary resource invocation, broadening the chain of third-party exposure.

Missing User Warnings

Low
Confidence
91% confidence
Finding
The setup examples instruct users to place an API key in client configuration and Authorization headers without warning about secret handling risks such as local config exposure, screen sharing leakage, repository commits, or accidental logging. While common in documentation, omitting this warning can lead to credential compromise and unauthorized use of the user's account.

Static analysis

No suspicious patterns detected.