Back to skill

Security audit

Ai Writing Quality Check

Security checks for vulnerabilities and agentic risk

Overview

The skill’s core remote writing check is disclosed, but its setup guidance repeatedly recommends unpinned npx-based installs that can execute mutable third-party code.

Review the install path before using this skill. Prefer ClawHub/OpenClaw installation or a pinned, verified installer over the unpinned `npx` examples, and only submit text you are comfortable sending to AgentPMT’s hosted service.

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:153
Finding

Unpinned Package Execution and Mutable External Skill Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 153–168
Vulnerability Type: Unpinned third-party dependencies and mutable external Skill sources
Risk Level: Medium

Vulnerable Code

markdown
- 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`
- No-account AgentAddress/x402 setup: ../agentpmt-no-account-agentaddress-x402
  - ClawHub page: https://clawhub.ai/agentpmt/agentpmt-no-account-agentaddress-x402
  - OpenClaw install: `openclaw skills install agentpmt-no-account-agentaddress-x402`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill agentpmt-no-account-agentaddress-x402`

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
npx skills add AgentPMT/agent-skills --skill agentpmt-no-account-agentaddress-x402
text

### Technical Analysis

The documented setup commands invoke the `skills` npm package through `npx` without specifying a package version. Depending on the local environment and cache state, `npx` can retrieve and execute the currently published package version. The referenced `AgentPMT/agent-skills` source is also not pinned to an immutable commit, release digest, or integrity hash.

Consequently, the effective installation logic and installed Skill contents can change after this package 
...[truncated 1820 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the npm package to a reviewed exact version, for example by using an explicit version rather than the latest available package.
  2. Pin AgentPMT/agent-skills to an immutable commit hash or signed release instead of a mutable branch or repository reference.
  3. Record and verify package integrity hashes or signed provenance before execution.
  4. Vendor the required setup Skills into a reviewed, version-controlled distribution when feasible.
  5. Use lockfiles and a trusted package registry configuration in automated environments.
  6. Run installation in a sandbox or least-privileged environment without unrelated credentials, wallet secrets, or sensitive project files.
  7. Review updates before adoption rather than automatically reinstalling mutable dependencies.
  8. Document the exact trusted versions and provide a verification procedure for users.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation keywords list includes the standalone term "content," which is extremely broad and overlaps with common everyday speech. In a markdown skill description, this can cause unintended invocation because it does not meaningfully constrain when this skill should be selected.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The skill instructs users to run npx skills add ... without pinning an exact package version or immutable source. That creates a supply-chain risk: a later compromised or maliciously updated package could be executed during installation with the user's privileges.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This installation command relies on npx to fetch and execute code without a pinned version, so the exact code run can change over time. That exposes users to dependency hijacking, malicious updates, or unexpected behavior from upstream changes.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The unpinned npx skills invocation is a real supply-chain weakness because it executes whatever package version is current at install time. In a skill ecosystem, this is especially relevant since users may treat the instructions as trusted operational guidance.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This script block contains unversioned npx execution, which can pull mutable code from the registry at runtime. If the package or a dependency is compromised, users could execute attacker-controlled code on their machines.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

Because this command is presented as a standard setup step, users are likely to execute it without additional scrutiny. Unpinned package execution increases the chance of silent compromise through malicious releases or dependency confusion-like events.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This is another instance of mutable remote code execution through npx without version pinning. Repetition across the skill increases exposure because it normalizes unsafe installation practices in multiple places.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The reference section again includes an unpinned npx skills command, preserving the same supply-chain risk later in the document. Even informational sections can lead to execution because users often copy commands from reference appendices.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This command allows runtime retrieval and execution of mutable package code. In practice, that can enable arbitrary local code execution if the upstream package or dependency tree is compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The skill repeats unsafe installation guidance by invoking npx without constraining the resolved version. Since these are setup instructions, the context makes the issue more dangerous than a passive mention because it directly influences operator behavior.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The skill is explicitly designed to send user-provided writing content to a remote AgentPMT service, which is an external data transmission risk. This is security-relevant because draft copy may contain confidential marketing plans, unpublished content, customer data, or other sensitive material, and the skill context directly encourages routine remote submission.

Content

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

md
- 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`)
- No-account AgentAddress/x402 setup: ../agentpmt-no-account-agentaddress-x402 (ClawHub: `agentpmt-no-account-agentaddress-x402`, page: https://clawhub.ai/agentpmt/agentpmt-no-account-agentaddress-x402; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-no-account-agentaddress-x402`)
- Marketplace product: https://www.agentpmt.com/marketplace/ai-writing-quality-check
- 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
91% confidence
Finding

The REST invoke endpoint confirms that the skill's core workflow depends on external transmission to a third-party service. In this context, the risk is elevated because the skill processes free-form text, which can easily include secrets, personal data, embargoed content, or proprietary copy if users are not carefully warned.

Content

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

md
- No-account AgentAddress/x402 setup: ../agentpmt-no-account-agentaddress-x402 (ClawHub: `agentpmt-no-account-agentaddress-x402`, page: https://clawhub.ai/agentpmt/agentpmt-no-account-agentaddress-x402; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-no-account-agentaddress-x402`)
- Marketplace product: https://www.agentpmt.com/marketplace/ai-writing-quality-check
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

Static analysis

No suspicious patterns detected.