Back to skill

Security audit

Linear Agent

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Linear integration that can read and modify Linear workspace data when the user invokes its documented commands.

Install this only if you are comfortable giving the skill a Linear personal API key with whatever workspace permissions that key has. Use a limited or dedicated Linear token if possible, and be careful with create, update, move, post-comment, and sync-commit commands because they make live changes without a dry-run or confirmation step.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · README.md (reported line 45)May include surrounding context.

md
### 1. Get your Linear API key

1. Open Linear → **Settings → API → Personal API keys**
2. Click **Create key**, give it a name, copy the value (`lin_api_...`)

### 2. Set the environment variable

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill exposes multiple state-changing operations such as creating and updating issues/projects, moving issues, posting comments, and syncing from commit messages, but the interface provides no confirmation, dry-run mode, or explicit warning before executing them. In an agent setting, this increases the risk of unintended or prompt-induced actions against a live Linear workspace, especially because the skill accepts commands directly from stdin/CLI and dispatches them immediately.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest advertises creation, update, move, comment, project, and commit-sync capabilities against a live Linear workspace, but the description does not clearly warn users that invoking these commands will modify external project-management data. This increases the risk of users triggering state-changing actions without informed consent, especially because several commands can alter issues or projects at scale.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The manifest requests a personal Linear API key but does not disclose that workspace data, issue content, comments, and project metadata will be transmitted to Linear's API when the skill is used. Users may supply sensitive credentials and organizational data without adequate notice about the privacy and data-flow implications.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · src/client.js (reported line 11)May include surrounding context.

js
const https = require('https');

const LINEAR_ENDPOINT = 'https://api.linear.app/graphql';

class LinearClient {
  /**

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The function parses commit messages and then sends GraphQL requests that can change Linear issue state, culminating in an issueUpdate mutation. Although the top-level docstring states the function will move issues to a done state, there is no confirmation prompt or explicit user-facing disclosure before performing this potentially workflow-affecting remote update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The README states that sync-commit will "auto-close referenced issues," which can change issue state based on parsed commit messages. While the capability is documented, there is no explicit warning that this may modify multiple issues automatically or unintentionally if commit text is misparsed.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.