Back to skill

Security audit

Test Integration

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward ClickUp task-management skill, but it can use your ClickUp token to read and change task data when invoked.

Install only if you intend to let the agent access ClickUp with the configured token. Treat CLICKUP_API_TOKEN as a secret, prefer environment or managed secret storage, and verify list IDs, task IDs, and requested status changes before allowing create or update actions.

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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (13)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file includes examples for creating tasks and updating task status via the ClickUp API, which can change user project data in an external system. The skill description does not include any warning or user disclosure about these write operations or their impact on workspace data.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill reads credentials from a local file outside its own directory tree (../../../clawd/TOOLS.md), which expands its access to unrelated local secrets beyond what is necessary for ClickUp operations. This creates unnecessary secret-discovery behavior and can silently consume credentials from a broader host context without clear user consent or scoping.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill automatically loads sensitive API credentials from local files or environment variables and immediately uses them for outbound API access without any user-facing disclosure. In an agent skill context, hidden credential use reduces transparency and can cause users to unknowingly authorize access to workspace data.

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 · SKILL.md (reported line 4)May include surrounding context.

md
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

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 · SKILL.md (reported line 37)May include surrounding context.

md
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

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 · SKILL.md (reported line 43)May include surrounding context.

md
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

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 · SKILL.md (reported line 49)May include surrounding context.

md
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

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 · SKILL.md (reported line 62)May include surrounding context.

md
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

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 · SKILL.md (reported line 73)May include surrounding context.

md
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

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 · skill.js (reported line 45)May include surrounding context.

js
}

const { apiToken, workspaceId } = getCredentials();
const BASE_URL = 'https://api.clickup.com/api/v2';

/**
 * Make a request to ClickUp API

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The createTask and updateTaskStatus functions perform remote state-changing actions directly from tool invocation with no confirmation, approval gate, or dry-run option. In an agent environment, this increases the chance of unintended writes, task tampering, or abuse through prompt injection or operator error.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file instructs users to configure CLICKUP_API_TOKEN, which is a sensitive credential, but does not warn that it grants access to ClickUp data or should be stored and used carefully. For markdown files, omission of privacy or system-integrity warnings around credential use is in scope.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The inline documentation suggests a generic credential source, while the actual code reads a hardcoded relative path '../../../clawd/TOOLS.md'. This is not just omitted detail: the comment implies a normal local config source, while the implementation reaches into an external project path, which materially changes the skill's behavior and trust boundary.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
skill.js:30