T08 · Insecure Dependencies
- Location
skill.md:217- Finding
Unpinned MCP Package Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This monday.com skill is mostly purpose-aligned, but it includes under-disclosed handling of a monday.com API token and an unpinned local MCP package that would receive that token.
Review before installing. Prefer the hosted OAuth MCP option or a pinned, reviewed local MCP version. Do not place a live monday.com API token directly in openclaw.json or other plaintext files; use the platform's secret/environment mechanism and a least-privilege monday.com account. Treat TOOLS.md board IDs as workspace-specific internal metadata.
skill.md:217Unpinned MCP Package Execution
skill.md:221Plaintext API Token in MCP Configuration
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
### Get an API Token
1. Log into monday.com as the agent.
2. Click avatar → **Developers** → **My Access Tokens** → **Copy**.
3. Set the token as an environment variable via OpenClaw's config (preferred) or your system's secret manager.
❌ Do **not** write the token to a plaintext file or add it to shell startup files.
❌ Do **not** commit tokens to version control.
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
fi
monday_query() {
RESPONSE=$(curl -s -X POST "$MONDAY_API_URL" \
-H "Content-Type: application/json" \
-H "Authorization: $MONDAY_API_TOKEN" \
-H "API-Version: 2024-10" \
The manifest description says 'Use when' followed by a wide range of activities including creating, connecting, querying, updating, and troubleshooting. This broad natural-language trigger scope lacks explicit boundaries or exclusion conditions, making unintended invocation more likely for general monday.com-related conversations.
The phrase 'One skill for everything monday.com' is expansive and nonspecific, implying the skill should activate for any monday.com mention. Because it does not define scope limits or unsupported cases, it creates ambiguity about when the skill should or should not be used.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Monday.com uses a single GraphQL endpoint:
https://api.monday.com/v2 (preferred)
https://api.monday.com/graphql (also works)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Monday.com uses a single GraphQL endpoint:
https://api.monday.com/v2 (preferred)
https://api.monday.com/graphql (also works)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Monday.com uses a single GraphQL endpoint:
https://api.monday.com/v2 (preferred)
https://api.monday.com/graphql (also works)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
fi
monday_query() {
RESPONSE=$(curl -s -X POST "$MONDAY_API_URL" \
-H "Content-Type: application/json" \
-H "Authorization: $MONDAY_API_TOKEN" \
-H "API-Version: 2024-10" \
The local MCP example embeds MONDAY_API_TOKEN directly in JSON as "your_token_here", normalizing hardcoded secrets in a config file. That increases the chance the token is stored on disk, leaked through backups or logs, or accidentally committed to version control, giving an attacker API access to monday.com data.
Persisting workspace and board IDs in a plaintext TOOLS.md file can expose internal metadata to later prompts, other users, or tooling that reads the repository/workspace. While IDs are not equivalent to credentials, they can aid enumeration, targeting, and accidental cross-context operations, especially in multi-tenant agent environments.
Earlier setup guidance explicitly says not to write the monday API token to a plaintext file and to store it in the OpenClaw environment or a secret manager. The troubleshooting table then tells the user to 'update file' for a regenerated token, which conflicts with the documented secret-handling approach and could mislead users into storing credentials in files.
The guidance instructs the user to write to TOOLS.md using shell redirection, which modifies a local file. Although the action is minor and operationally useful, this section does not explicitly warn that it will create or change local state in the repository or workspace.
No suspicious patterns detected.