Back to skill

Security audit

Multi Protocol Bridge

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims, but it asks agents to send credentials, private keys, files, commands, and MQTT messages through a third-party gateway with insufficient safety scoping.

Review before installing. Use only for explicitly authorized FTP/FTPS, SSH, and MQTT targets; avoid reusable passwords in URLs and do not send production SSH private keys through ordinary tool parameters. Prefer FTPS and MQTTS, least-privilege short-lived credentials, and explicit approval before deletion, retained MQTT messages, or any SSH command that changes a system.

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

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:28
Finding

Reusable credentials and SSH private keys are transmitted through a third-party gateway

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:28, SKILL.md:56-59, SKILL.md:166-191, SKILL.md:386-440; schema.md:299-348
Vulnerability Type: Sensitive credential disclosure to an external service
Risk Level: High

Vulnerable Code

SKILL.md:28:

text
scheme://username:password@hostname:port/path

SKILL.md:166-191:

markdown
**Optional fields:**
- `options.timeout` (integer): Command timeout in seconds. Default: `30`
- `options.private_key` (string): SSH private key in PEM format for key-based authentication. When provided, password in the URL can be omitted.
- `options.known_hosts` (string): SSH known hosts entry for host verification

**Example (password auth):**
```json
{
  "action": "ssh_execute",
  "url": "ssh://deploy:s3cret@server.example.com:22",
  "content": "uptime"
}

Example (key-based auth):

json
{
  "action": "ssh_execute",
  "url": "ssh://deploy@server.example.com:22",
  "content": "ls -la /var/log",
  "options": {
    "private_key": "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----",
    "timeout": 60
  }
}
text

`SKILL.md:438-440`:

```markdown
- Marketplace product: https://www.agentpmt.com/marketplace/multi-protocol-bridge
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

Technical Analysis

The Skill instructs users to place reusable passwords directly in protocol URLs and permits complete SSH private keys to be supplied as request parameters. These values are then submitted to an AgentPMT-hosted MCP or REST gateway so that the gateway can connect to the destination service.

This design necessarily discloses the supplied authentication material to an intermediary. URL-embedded credentials are especially prone to exposure through request logging, telemetry, exception reports, tracing systems, ...[truncated 1785 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not transmit reusable SSH private keys or reusable account passwords to a third-party protocol gateway.
  • Prefer local protocol clients operating inside the user's trusted execution boundary.
  • Where remote execution is unavoidable, use short-lived, operation-scoped credentials or delegated tokens with strict destination, action, and expiration restrictions.
  • Replace literal secret parameters with opaque secret references resolved only inside a trusted credential broker.
  • Never embed credentials in URLs. Supply secrets through a dedicated protected credential channel that is excluded from request logs, traces, errors, and analytics.
  • Require explicit, informed user approval before transmitting any credential or sensitive payload to an external service.
  • Use restricted SSH certificates or keys with forced commands, source-address restrictions, short validity periods, and minimal account permissions.
  • Document gateway-side encryption, access control, retention, deletion, audit logging, and incident-response guarantees.
  • Automatically redact URL user information and private-key fields from all agent output, logs, telemetry, and error messages.
  • Rotate any production credential that may already have been submitted through an inadequately controlled channel.

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:28
Finding

Plaintext FTP and MQTT variants permit interception of credentials and payloads

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:28-33, SKILL.md:50-59, SKILL.md:204-230
Vulnerability Type: Plaintext transmission of sensitive information
Risk Level: High

Vulnerable Code

SKILL.md:28-33:

markdown
scheme://username:password@hostname:port/path

Supported schemes:
- `ftp://` / `ftps://` (FTP with optional TLS)
- `ssh://` (SSH remote commands)
- `mqtt://` / `mqtts://` (MQTT with optional TLS)

SKILL.md:50-59:

markdown
**Example:**
```json
{
  "action": "ftp_upload",
  "url": "ftp://myuser:mypass@ftp.example.com:21/uploads/report.txt",
  "content": "Monthly report data here..."
}
text

`SKILL.md:204-214`:

```markdown
**Example:**
```json
{
  "action": "mqtt_publish",
  "url": "mqtt://sensoruser:sensorpass@broker.example.com:1883/sensors/temperature",
  "content": "{\"value\": 22.5, \"unit\": \"celsius\"}"
}
text

### Technical Analysis

The Skill supports and demonstrates unencrypted FTP and MQTT connections while placing usernames and passwords in connection URLs. Standard FTP and MQTT do not provide transport encryption. Consequently, credentials, uploaded or downloaded file content, MQTT payloads, topics, and relevant protocol metadata may be visible to network observers between the AgentPMT gateway and the destination server.

Secure alternatives are mentioned, but they are optional rather than enforced. Showing plaintext variants in primary examples also encourages insecure deployment. Because the actual destination connection is made by a remote gateway, a user cannot independently ensure that the gateway's network path is trusted.

### Attack Path

1. A user or agent follows an example using `ftp://` or `mqtt://`.
2. The AgentPMT gateway connects to the destination server without transport encryption.
3. An attacker with visibility into the gateway-to-destination network path captures protocol traffic.
4. The att
...[truncated 875 chars]
Remediation
View remediation

Remediation Suggestions

  • Reject ftp:// and mqtt:// connections by default.
  • Require ftps:// and mqtts:// for all credentialed or sensitive operations.
  • Enforce certificate-chain validation and hostname verification; do not silently accept self-signed or mismatched certificates.
  • Prefer SFTP over FTP/FTPS where compatible with the declared product scope.
  • Remove plaintext protocol examples from the documentation.
  • If legacy plaintext access must remain available, require explicit per-operation user approval and display a prominent interception warning.
  • Restrict plaintext exceptions to preapproved private networks and non-sensitive, short-lived credentials.
  • Add server-side scheme validation so documentation safeguards cannot be bypassed by crafted requests.
  • Use narrowly scoped destination accounts and rotate any credential transmitted over plaintext.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:369
Finding

Unpinned npx installation instructions introduce mutable supply-chain execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:369-383, SKILL.md:435-437
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable Code

SKILL.md:369-383:

markdown
Core AgentPMT setup skills:
- What AgentPMT is: ../what-is-agentpmt
  - ClawHub page: https://clawhub.ai/agentpmt/what-is-agentpmt
  - OpenClaw install: `openclaw skills install what-is-agentpmt`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup
  - ClawHub page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup
  - OpenClaw install: `openclaw skills install agentpmt-account-mcp-rest-api-setup`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`

skills.sh install script:

```bash
npx skills add AgentPMT/agent-skills --skill what-is-agentpmt
npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup
text

### Technical Analysis

The Skill recommends invoking `npx` to acquire setup components without pinning the invoked package, repository content, Skill release, or immutable commit. The effective installed content can therefore change after this package has been reviewed.

`npx` can download and execute package-provided code. If the package registry entry, repository, publisher account, transitive dependency, or latest release is compromised, users may receive code or instructions different from those assessed in this audit. The referenced downloaded components were not present in the audited project and therefore fall outside the reviewed artifact.

No evidence establishes that the referenced dependency is currently malicious. The finding concerns the unsafe, mutable acquisition mechanism and resulting supply-chain exposure.

### Attack Path

1. An attacker compromises a relevant pa
...[truncated 1326 chars]
Remediation
View remediation

Remediation Suggestions

  • Pin the npx package to an exact reviewed version.
  • Pin installed repository content and Skills to immutable commit hashes or content digests.
  • Publish and verify cryptographic checksums or signed provenance before installation.
  • Use lockfiles and integrity metadata for package dependencies.
  • Review the complete dependency tree and installation lifecycle scripts for the pinned release.
  • Avoid automatically executing package lifecycle scripts where they are unnecessary.
  • Download dependencies in a restricted environment and inspect them before allowing execution.
  • Run installation with a non-privileged account and minimal filesystem, network, and secret access.
  • Document the expected publisher identity, source repository, version, digest, and signature-verification procedure.
  • Require a new security review whenever the pinned dependency version or digest changes.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (17)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The file upload and MQTT publishing sections explain how to transmit arbitrary content to external servers and brokers without a prominent warning that sensitive data may leave the local trust boundary. Given this skill's purpose as a multi-protocol bridge, lack of explicit exfiltration warnings makes accidental disclosure of secrets, proprietary files, or telemetry more likely.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill prominently documents SSH-based remote command execution but does not place a clear warning near that feature about command execution risk, host trust, privilege scope, and potential system damage. In context, this is more dangerous than a generic omission because the tool is expressly designed to let agents run shell commands on external systems over HTTP, creating a direct path to destructive or unauthorized actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The activation keywords are broad (url, options, generic protocol terms) and lack exclusion conditions, which can cause the skill to be selected in workflows unrelated to FTP/SSH/MQTT bridging. Because this skill can perform file deletion, remote command execution, and outbound messaging, overbroad routing materially increases the chance of unintended high-impact actions being exposed to the agent.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The example invocation for ftp_delete contradicts the documented schema by using an invalid confirmation string and an https:// URL instead of ftp:// or ftps://. In a skill that enables destructive remote actions, contradictory examples can cause mis-execution, failed safeguards, or encourage callers to weaken validation logic to make the example work.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 439)May include surrounding context.

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/multi-protocol-bridge
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 440)May include surrounding context.

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/multi-protocol-bridge
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The schema repeatedly documents credential-bearing URLs such as ftp://user:pass@host and mqtt://user:pass@host without any warning that embedding secrets in URLs is unsafe. URLs are commonly logged, cached, stored in browser history, and exposed in telemetry, which can leak usernames, passwords, and connection details to unintended parties.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This skill exposes arbitrary remote shell execution over SSH but provides no safety guidance about destructive commands, privilege boundaries, or command injection risks. In an agent setting, a model could be induced to run harmful commands on production infrastructure, causing data loss, service disruption, or host compromise.

Content

No source excerpt is available for this finding.

File System Enumeration

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Code scans file system directories looking for sensitive files. This could be reconnaissance for credential theft.

Content

Scanner excerpt · schema.md (reported line 297)May include surrounding context.

md
| Parameter | Type | Required | Description |
|---|---|---|---|
| `content` | `string` | yes | Shell command to execute on the remote server (e.g., 'ls -la /home/user') |
| `options` | `object` | no | SSH connection options |
| `url` | `string` | yes | SSH URL (e.g., ssh://user:pass@server.example.com:22). For key auth, omit password and provide private_key in options. |

File System Enumeration

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Code scans file system directories looking for sensitive files. This could be reconnaissance for credential theft.

Content

Scanner excerpt · schema.md (reported line 320)May include surrounding context.

md
| Parameter | Type | Required | Description |
|---|---|---|---|
| `content` | `string` | yes | Shell command to execute on the remote server (e.g., 'ls -la /home/user') |
| `options` | `object` | no | SSH connection options |
| `url` | `string` | yes | SSH URL (e.g., ssh://user:pass@server.example.com:22). For key auth, omit password and provide private_key in options. |

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The schema accepts an SSH private key as a plain string parameter yet does not warn that this is highly sensitive credential material. Passing private keys through ordinary tool parameters risks disclosure via logs, traces, memory retention, prompt history, or downstream systems, enabling unauthorized server access.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.