Back to skill

Security audit

Linear Feedback Triage

Security checks for vulnerabilities and agentic risk

Overview

This skill is purpose-built for Linear feedback triage, but it asks the agent to run an unpinned npm tool that can read and modify business tickets.

Review before installing. The Linear workflow itself is disclosed and coherent, but you should only use this in an environment where `mcporter` is pinned or preinstalled from a trusted source, Linear credentials are least-privilege, and write operations require clear user confirmation.

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:14
Finding
Unpinned npm Package Is Automatically Downloaded and Executed## Vulnerability Details **File Location**: `SKILL.md`, lines 14–25 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```markdown 1. Use `exec` with `npx -y mcporter ...` from `/Users/claw/.openclaw/workspace`. 2. Query the Linear MCP server configured in `config/mcporter.json`. 3. Prefer read-only queries first. 4. Summarize findings before proposing writes. 5. Only mutate Linear when the user clearly asks, or when the workflow explicitly calls for it. Useful commands: ```bash cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.list_issues team=FB limit=10 cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.get_issue id=FB-12345 cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.list_issue_statuses team=FB cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.list_issue_labels team=FB ``` ``` The same unsafe invocation pattern is also used for write operations at `SKILL.md`, lines 126–134: ```markdown ## Mutation commands Only use these when needed: ```bash cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.save_issue id=FB-12345 state=处理中 cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.save_issue id=FB-12345 labels='["会员支付","Android"]' cd /Users/claw/.openclaw/workspace && npx -y mcporter call linear.save_comment issueId=FB-12345 body='处理中,已复现。' ``` ``` ### Technical Analysis The skill instructs the agent to run `npx -y mcporter` without specifying a reviewed package version. If the package is absent locally, `npx` can retrieve it from the configured npm registry and execute it immediately. The `-y` option suppresses the normal installation confirmation, eliminating an opportunity to inspect or reject an unexpected package. Consequently, the code that executes during a skill invocation is ...[truncated 2269 chars]
Remediation
## Remediation Suggestions 1. Pin `mcporter` to a specific, reviewed version rather than allowing npm to resolve the latest release: ```bash npx --no-install mcporter ... ``` Use this only after installing an explicitly pinned dependency through the project's package manifest and lockfile. 2. Add the reviewed package version to `package.json` and commit a lockfile containing npm integrity hashes. Install dependencies with: ```bash npm ci --ignore-scripts ``` If lifecycle scripts are genuinely required, review them before enabling them. 3. Invoke the trusted local binary instead of permitting automatic downloads: ```bash ./node_modules/.bin/mcporter call linear.list_issues team=FB limit=10 ``` 4. Configure npm to use an approved registry and enforce dependency provenance or integrity verification where supported. 5. Run the MCP client in a sandbox with restricted filesystem and network access. Do not expose unrelated secrets or credentials to its process environment. 6. Grant the Linear integration only the minimum required scopes. Prefer separate read-only and write-capable credentials so ordinary triage queries cannot mutate workspace data. 7. Require explicit approval immediately before write operations and validate the intended issue identifier, state, labels, and comment content. 8. Periodically review the pinned package and its transitive dependencies before upgrading. Apply version changes through a controlled dependency-review process rather than automatic resolution.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (9)

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The skill repeatedly requires use of Chinese labels, statuses, queries, and reply conventions such as 用户反馈, 会员支付, 待处理, and @tidebot reply text, but it does not state that the skill is intentionally limited to a Chinese-language workflow or offer an opt-in language choice. This can violate a language/locale policy because the skill implicitly forces a specific locale for interaction and outputs.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill repeatedly instructs the agent to run `npx -y mcporter` without pinning an exact package version or integrity hash. This allows whatever version is current in the registry at execution time to be fetched and executed, creating a supply-chain remote code execution risk if the package is compromised, hijacked, or unexpectedly changed.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This command fetches and runs `mcporter` via `npx` without a pinned version, so the executed code is not stable or auditable. In a workflow that accesses Linear and runs from a local workspace, this increases the chance of arbitrary code execution through a malicious or altered package release.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
Using `npx -y mcporter` here causes the agent to trust the latest registry state at runtime rather than a vetted artifact. If the package or one of its transitive dependencies is compromised, the skill could execute attacker-controlled code with the agent's local permissions and access to configured MCP resources.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill's example command executes an unpinned npm package directly from the network, which is a classic software supply-chain weakness. Because the package is used to query external services and runs from a user workspace, compromise could expose tokens, local files, or enable unauthorized actions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This command pattern again relies on `npx` to download and run `mcporter` without version pinning or integrity constraints. That makes the behavior non-deterministic and exposes the agent to package substitution or malicious updates that could run arbitrary code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The mutation example uses the same unpinned `npx -y mcporter` pattern, but in a write-capable context. That is especially risky because a compromised package could both execute arbitrary code and abuse Linear write access to alter issues, comments, or workflow state.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This unpinned runtime package execution occurs in a command that modifies issue labels, increasing the blast radius beyond local code execution to business-data tampering. The skill context makes it more dangerous because the tool is explicitly authorized to change records in an operational ticketing system.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Here the skill uses an unpinned package in a command that can post comments to Linear, combining supply-chain execution risk with external write actions. A malicious package version could misuse credentials, inject misleading comments, or pivot to other local resources available to the agent.

Static analysis

No suspicious patterns detected.