T01 · Skill Instruction Hijacking
- Location
index.js:15- Finding
Untrusted Meeting Notes Are Embedded Directly into an Agent Prompt
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This meeting summarizer is mostly coherent, but it automatically performs paid billing with a hardcoded merchant key and has under-scoped external processing risks.
Review carefully before installing. The skill charges 0.003 USDT per run by default, includes a merchant key in the package, and sends meeting notes into an OpenClaw agent whose exact privileges are not defined here. Use only with non-sensitive notes unless you understand the Sloan agent configuration, and avoid installing until billing confirmation, credential handling, pinned installer versions, and dependency sources are tightened.
index.js:15Untrusted Meeting Notes Are Embedded Directly into an Agent Prompt
index.js:9Hardcoded Payment Merchant Credential Is Distributed with the Package
README.md:13Mutable Installer Execution and Plaintext Dependency Sources Create Supply-Chain Risk
The documented purpose is meeting summarization, but the behavior includes payment processing, external billing/network access, and an embedded merchant credential fallback that is not clearly disclosed in the primary description. Hidden or under-declared monetization and network behavior is dangerous because it can trigger unauthorized charges, exfiltrate user content or metadata, and bypass informed consent.
The skill’s stated purpose is meeting-summary generation, but it performs a real external billing charge before producing output. This creates a hidden side effect not justified by the manifest and can lead to unauthorized or unexpected financial transactions whenever a user invokes the skill.
The code includes a payment-processing capability unrelated to the core summarization function and triggers it automatically unless --test is supplied. In the context of a note summarizer, this is disproportionately dangerous because users would not reasonably expect the tool to initiate financial charges as part of basic text processing.
The lockfile pins axios 1.13.6, which is flagged with multiple advisories including SSRF-related proxy bypass and prototype-pollution-based attack chains. For a meeting summary skill, network access is common, so dependency flaws in the HTTP client can directly affect requests involving user-supplied URLs, redirects, proxy handling, credentials, or untrusted response processing.
form-data 4.0.5 is flagged for CRLF injection via unescaped multipart field names and filenames. If the skill ever constructs multipart requests using user-influenced field metadata, an attacker may be able to manipulate request structure or smuggle unintended headers/content to downstream services.
The package allows resolution to axios 1.13.6 under the declared semver range, and the finding indicates that version carries multiple known advisories, including SSRF-related and request-handling issues. In a skill context, HTTP client vulnerabilities are especially important because agent skills often fetch remote content or interact with external APIs, which can expose credentials, enable request manipulation, or bypass network restrictions.
The installation command uses npx clawhub@latest, which fetches and executes the latest published package version at runtime rather than a pinned, reviewed version. This creates a supply-chain risk: if the upstream package is compromised or a breaking/malicious release is published, users following the README could execute attacker-controlled code during installation.
The README advertises automatic payment handling and an embedded merchant key without a prominent warning or explicit user consent flow. In the context of a CLI skill, this is dangerous because users may trigger billable actions unexpectedly, and the presence of an embedded payment credential suggests hidden financial side effects and poor key-handling practices that could lead to unauthorized charges or abuse.
The skill advertises environment-variable-based capabilities but does not declare any explicit tool scope or permissions boundaries. In practice, this weakens transparency and reviewability, making it easier for a skill to access sensitive runtime secrets without clear user awareness or policy enforcement.
This skill processes meeting notes, which often contain confidential business discussions, personal data, or strategic plans, yet the description provides no privacy warning about sending that content to AI services or a local gateway. Users may unknowingly transmit sensitive notes outside their expected trust boundary, creating confidentiality and compliance risks.
The code contains a hardcoded fallback merchant key for an external payment API, exposing a live-looking credential directly in the skill source. Hardcoded secrets can be extracted by anyone with code access and abused to impersonate the merchant, issue unauthorized charges, or disrupt billing operations.
const { spawn } = require('child_process');
const CONFIG = {
skillpay_api: 'https://api.skillpay.me/v1',
merchant_key: process.env.SKILLPAY_MERCHANT_KEY || 'sk_91fff75ae2a7a71f8eceadcbcd816e24d57e58d9d04ccca45f0b3856af130aea',
price_per_use: 0.003,
currency: 'USDT'
Spawning an external CLI agent gives the skill a broader execution boundary than a simple local summarizer and sends user-controlled content into another executable. While this may be intended to access an AI model, it increases attack surface and trust assumptions because behavior depends on an external binary outside the file’s visible logic.
Meeting notes are passed to an external agent process without clear notice or consent, and those notes may contain sensitive internal business information, personal data, or confidential action items. In a meeting-summary skill, users are especially likely to provide sensitive content, making undisclosed external disclosure more risky.
The payment flow transmits billing-related data and a merchant credential to an external service with only a pricing message as user-facing context. Users are not clearly informed that invoking the skill triggers networked billing activity, which creates both privacy and financial transparency concerns.
This file is a manifest-type JSON file, so vague-trigger review applies. The package and bin name "meeting-summary-generator" describe a broad, common productivity task, but the manifest provides no activation constraints, explicit invocation phrases, or negative examples to clarify when the skill should or should not run.
follow-redirects 1.15.11 is reported to leak custom authentication headers across cross-domain redirects. In a skill that may call external services to summarize or fetch content, this can expose API keys, bearer tokens, or internal credentials to attacker-controlled endpoints if redirects are followed automatically.
The dependency is specified with a caret range (^1.6.0), which permits automatic installation of newer 1.x releases. This reduces build reproducibility and can unexpectedly pull in a later vulnerable version of axios, increasing supply-chain risk for a skill that may be installed and executed in different environments.
"author": "Matt",
"license": "MIT",
"dependencies": {
"axios": "^1.6.0"
},
"openclaw": {
"skill": true,