Back to skill

Security audit

Linear项目管理

Security checks for vulnerabilities and agentic risk

Overview

This Linear API skill is not clearly malicious, but it asks for broad file and command powers that are poorly scoped for a project-management API wrapper.

Review this skill before installing. Use it only in a tightly sandboxed environment with explicit confirmation for writes, API mutations, and commands; do not provide broad local filesystem access, administrator privileges, or credentials that could be forwarded to arbitrary URLs.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:13
Finding

Excessive Tool Permissions Violate Least-Privilege Boundaries

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 13–16; supporting behavior at lines 56–57, 112, 286–288, and 301
Vulnerability Type: Excessive filesystem and command-execution permissions
Risk Level: High

yaml
tools:
- read
- exec
- write

The supporting instructions state that the Skill may perform CRUD operations that update system state, accept API request URLs and headers, read and write files, execute system commands, and recommend elevated execution when filesystem permissions are insufficient.

Technical Analysis

The Skill is presented as a Linear project-management API wrapper, but it requests unrestricted read, write, and exec capabilities. These permissions exceed those ordinarily required to communicate with the Linear API.

The document claims that commands are executed in a sandbox and mentions command allowlisting as a security measure. However, it does not define enforceable command restrictions, permitted arguments, filesystem boundaries, network destination restrictions, or a concrete sandbox policy. It also accepts request URLs and headers without specifying an allowlist of trusted Linear API hosts.

Consequently, an Agent following this Skill could interpret attacker-controlled instructions as authorization to execute local commands, access or modify files, or send requests to unintended network services. The instruction recommending administrator execution following permission failures further increases the potential privilege boundary violation.

No executable implementation is included in the project, so exploitation depends on how the hosting Agent interprets and enforces the declared tools. The issue is nevertheless present in the Skill configuration because it explicitly requests capabilities beyond the documented task requirements.

Attack Path

  1. A user supplies a crafted project-management instruction containing a command, local file operation, or attacker ...[truncated 1296 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove exec, read, and write from the declared tools unless each capability is indispensable to documented functionality.
  2. Implement Linear integration through a dedicated, narrowly scoped HTTP tool instead of general command execution.
  3. Restrict network access to documented HTTPS Linear API hosts and explicitly approved routes.
  4. Validate HTTP methods, request schemas, payload sizes, headers, and identifiers before issuing requests.
  5. Never forward authentication headers or API keys to caller-selected URLs.
  6. If file access is required, restrict it to a dedicated workspace directory, reject path traversal, resolve symbolic links safely, and deny access to credential and system files.
  7. If command execution is unavoidable, use a fixed executable and argument-vector allowlist. Do not invoke a shell or interpolate user-controlled content into commands.
  8. Remove the recommendation to run with administrator privileges. Fail safely when permissions are insufficient and document the minimum required permissions.
  9. Convert the claimed sandbox and allowlist controls into enforceable configuration or implementation rather than relying on descriptive documentation.
  10. Require explicit user confirmation for destructive CRUD operations, file modifications, or other state-changing actions.
  11. Redact credentials, authorization headers, and sensitive response data from logs and returned output.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

Vague Triggers

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The activation trigger is broad and underspecified, including minimal phrases such as the user saying "L," which can cause accidental or inappropriate invocation. In a skill with read/write/exec capabilities, overly permissive routing increases the chance that unrelated conversations trigger privileged behavior without informed user intent.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Claiming command-execution capability for a project-management/API wrapper introduces an unnecessary high-risk primitive unrelated to the core business function. If the agent routes user-controlled input into exec paths, this could enable arbitrary command execution, data exfiltration, or host manipulation beyond the expected API operations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The documentation inconsistently describes the skill as both a direct API passthrough and a tool that performs generic data cleaning and transformation. This ambiguity is risky because users may expect faithful request/response handling while the skill may mutate data, creating opportunities for unintended data corruption, policy bypass, or misleading outputs in automated workflows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description states "支持中文交互" as a behavior of the skill, but does not indicate that language is optional or user-selectable. This can violate language/locale policy when a skill appears to prescribe a specific interaction language without opt-in or justification.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description does not clearly warn users that it can write files and execute commands, despite those being materially riskier than ordinary API calls. This omission weakens informed consent and can cause users or supervising agents to invoke the skill under false assumptions about its safety boundaries.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is presented as a Linear project-management/API wrapper, but its documented scope expands to generic file handling and command execution. This capability mismatch is dangerous because users and orchestration systems may grant trust and invoke the skill for benign API tasks while unintentionally exposing local filesystem and shell execution primitives.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.