T01 · Skill Instruction Hijacking
- Location
SKILL.md:137- Finding
Untrusted Monday.com Board Content Is Treated as Authoritative Agent Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is meant to automate a Monday.com accountability board, but it grants broad recurring work, messaging, sub-agent delegation, and unsafe handling of board text and API inputs that users should review carefully.
Install only if you are comfortable giving this skill recurring authenticated access to a Monday.com board and letting it coordinate real work. Use a least-privilege Monday token, avoid storing broad tokens in ~/.openclaw/.env, review board Details/Doc text as untrusted input, and require explicit approval before code changes, sub-agent delegation, or outbound messages.
SKILL.md:137Untrusted Monday.com Board Content Is Treated as Authoritative Agent Instructions
monday-api.sh:28GraphQL and JSON Injection Through Unsafely Interpolated Shell Arguments
The skill description frames the capability as Monday.com accountability management, but the document authorizes much broader behavior and includes undeclared credential handling implications noted by the scanner. This mismatch is dangerous because users and orchestrators may approve or auto-activate the skill under a narrow trust assumption while it performs materially different actions and accesses credentials or local environment unexpectedly.
The skill expands from tracking accountability items into actually performing substantive work such as code changes, configuration changes, research, and outreach. This is dangerous because a board-management skill becomes a general operations agent, enabling high-impact actions under the guise of routine status management and increasing the chance of unauthorized changes or data exposure.
The script reads a secret token from a local .env file, which is a form of credential access. In an agent skill, that behavior is more dangerous because the tool can authenticate to a third-party service using local secrets the user may not have intended this specific skill to consume.
# MONDAY_COL_STATUS — column ID for status (default: color_mm0yr4nm)
set -euo pipefail
# Read token from env, then fallback to .env file
TOKEN="${MONDAY_API_TOKEN:-$(grep MONDAY_API_TOKEN ~/.openclaw/.env 2>/dev/null | cut -d= -f2 || echo '')}"
BOARD="${MONDAY_BOARD_ID:-}"
COL_LAST_CHECKED="${MONDAY_COL_LAST_CHECKED:-date_mm0y8p9j}"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
set -euo pipefail
# Read token from env, then fallback to .env file
TOKEN="${MONDAY_API_TOKEN:-$(grep MONDAY_API_TOKEN ~/.openclaw/.env 2>/dev/null | cut -d= -f2 || echo '')}"
BOARD="${MONDAY_BOARD_ID:-}"
COL_LAST_CHECKED="${MONDAY_COL_LAST_CHECKED:-date_mm0y8p9j}"
COL_STATUS="${MONDAY_COL_STATUS:-color_mm0yr4nm}"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
API="https://api.monday.com/v2"
if [ -z "$TOKEN" ]; then
echo "Error: MONDAY_API_TOKEN not set and not found in ~/.openclaw/.env" >&2
exit 1
fi
The skill enables shell-based helper script execution (scripts/monday-api.sh) and operational behavior, but it does not declare any tool scope or allowed-tools constraints. That creates an authorization gap where an agent may invoke broader local capabilities than users expect, increasing the chance of unintended command execution or access to local resources.
The activation text is broad enough to match common requests about assignments, status, work sessions, and cron-triggered activity. Over-broad triggering is dangerous because it can invoke this powerful skill in contexts where the user only wanted discussion or lightweight assistance, causing unnecessary external actions or operational work.
Authorizing the agent to spawn sub-agents or coding agents materially expands the execution surface beyond Monday.com task tracking. In context, this can cause unreviewed delegation of sensitive context and operational authority to additional agents, amplifying mistakes, data leakage, or unsafe code changes.
The skill directs the agent to contact people for help or escalation without an explicit user-facing warning or consent checkpoint for outbound communication. In practice, this can result in unintended disclosure of internal context, project details, or blockers to external recipients.
The skill instructs the agent to message people and the owner, which extends behavior beyond board management into outbound communications. That is risky because it can disclose project state, blockers, or sensitive details to third parties without an explicit, narrowly defined authorization model.
The script silently falls back to reading a Monday API token from ~/.openclaw/.env, which expands the credential access surface beyond explicit runtime inputs. In an agent skill context, this can cause the skill to use locally stored secrets without clear user awareness or consent, enabling unintended credential use and account actions.
Accessing a local .env file for credentials without prominent disclosure is risky because users may not realize the skill is capable of reading secrets from disk. In a tool-executing agent environment, hidden credential sourcing weakens transparency and can lead to unauthorized use of a user's Monday.com account.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
BOARD="${MONDAY_BOARD_ID:-}"
COL_LAST_CHECKED="${MONDAY_COL_LAST_CHECKED:-date_mm0y8p9j}"
COL_STATUS="${MONDAY_COL_STATUS:-color_mm0yr4nm}"
API="https://api.monday.com/v2"
if [ -z "$TOKEN" ]; then
echo "Error: MONDAY_API_TOKEN not set and not found in ~/.openclaw/.env" >&2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
BOARD="${MONDAY_BOARD_ID:-}"
COL_LAST_CHECKED="${MONDAY_COL_LAST_CHECKED:-date_mm0y8p9j}"
COL_STATUS="${MONDAY_COL_STATUS:-color_mm0yr4nm}"
API="https://api.monday.com/v2"
if [ -z "$TOKEN" ]; then
echo "Error: MONDAY_API_TOKEN not set and not found in ~/.openclaw/.env" >&2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
fi
query() {
curl -s -X POST "$API" \
-H "Content-Type: application/json" \
-H "Authorization: $TOKEN" \
-d "{\"query\": \"$1\"}"