T09 · Insecure Skill Coding Practices
- Location
meegle-api-credentials/SKILL.md:54- Finding
Unvalidated API Host Can Redirect Meegle Credentials and Access Tokens
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent Meegle API skill pack, but it gives agents broad business-data and admin-changing authority with weak confirmation and destination-validation guidance.
Install only if you intend to let the agent operate Meegle with real project credentials. Use least-privilege Meegle plugin scopes, validate the API domain is exactly project.larksuite.com or project.feishu.cn before any token request, avoid storing long-lived secrets in plain shell files, and require explicit confirmation for delete, replace, overwrite, membership, and settings changes.
meegle-api-credentials/SKILL.md:54Unvalidated API Host Can Redirect Meegle Credentials and Access Tokens
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## Overview
Meegle API Skill splits Meegle OpenAPI into multiple sub-skills by functional area. Before calling any Meegle API, read **meegle-api-credentials** first to obtain domain, access token, context (project_key, user_key), and request headers. Other skills (Users, Space, Work Items, Setting, etc.) assume you have already obtained everything from credentials.
## Required Credentials
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## Overview
Meegle API Skill splits Meegle OpenAPI into multiple sub-skills by functional area. Before calling any Meegle API, read **meegle-api-credentials** first to obtain domain, access token, context (project_key, user_key), and request headers. Other skills (Users, Space, Work Items, Setting, etc.) assume you have already obtained everything from credentials.
## Required Credentials
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## Overview
Meegle API Skill splits Meegle OpenAPI into multiple sub-skills by functional area. Before calling any Meegle API, read **meegle-api-credentials** first to obtain domain, access token, context (project_key, user_key), and request headers. Other skills (Users, Space, Work Items, Setting, etc.) assume you have already obtained everything from credentials.
## Required Credentials
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
name: meegle-api-credentials
description: |
Obtain Meegle API access credentials: domain, token, context (project_key, user_key), and request headers.
Read this first before any other Meegle API skill; all call prerequisites are in this skill.
metadata:
openclaw: {}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
name: meegle-api-credentials
description: |
Obtain Meegle API access credentials: domain, token, context (project_key, user_key), and request headers.
Read this first before any other Meegle API skill; all call prerequisites are in this skill.
metadata:
openclaw: {}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
name: meegle-api-credentials
description: |
Obtain Meegle API access credentials: domain, token, context (project_key, user_key), and request headers.
Read this first before any other Meegle API skill; all call prerequisites are in this skill.
metadata:
openclaw: {}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
name: meegle-api-credentials
description: |
Obtain Meegle API access credentials: domain, token, context (project_key, user_key), and request headers.
Read this first before any other Meegle API skill; all call prerequisites are in this skill.
metadata:
openclaw: {}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
name: meegle-api-credentials
description: |
Obtain Meegle API access credentials: domain, token, context (project_key, user_key), and request headers.
Read this first before any other Meegle API skill; all call prerequisites are in this skill.
metadata:
openclaw: {}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
name: meegle-api-credentials
description: |
Obtain Meegle API access credentials: domain, token, context (project_key, user_key), and request headers.
Read this first before any other Meegle API skill; all call prerequisites are in this skill.
metadata:
openclaw: {}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
---
## Obtain Access Token
Generate Meegle access credentials for OpenClaw to call OpenAPI.
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.
### Points to note
- This interface is for **overwrite updates**: the provided **name** and **relation_details** replace the existing configuration for the given **relation_id**.
### When to Use
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
### Points to Note
**This API only supports user access credentials (user_access_token).** See Get Access Credentials for how to obtain user_access_token.
### When to Use
The README encourages storing sensitive credentials such as plugin secrets in environment variables but does not mention basic safeguards like using a secure secret store, limiting scope, avoiding logs, or preventing accidental disclosure in shell history and process dumps. While environment variables are common, documenting them without security caveats can lead operators to expose long-lived secrets in shared development or CI environments.
This markdown file describes a delete operation for comments, including API-only deletion, but it does not clearly warn users that deleting a comment affects stored user data and may be irreversible. Under the markdown criteria for missing user warnings, destructive behavior that can affect user data should be explicitly disclosed.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
| `project_key` | Meegle platform: double-click the **project icon** (space name); or from the project URL |
| `user_key` | Meegle platform: double-click the **avatar**; or from the `user_key` field in the user_access_token API response |
Then ask the user to provide the value(s) and retry after they are supplied. **Before asking**, always check [environment variables](#environment-variables) first; if a credential is set there, use it and do not prompt the user.
## Environment variables
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
| `project_key` | Meegle platform: double-click the **project icon** (space name); or from the project URL |
| `user_key` | Meegle platform: double-click the **avatar**; or from the `user_key` field in the user_access_token API response |
Then ask the user to provide the value(s) and retry after they are supplied. **Before asking**, always check [environment variables](#environment-variables) first; if a credential is set there, use it and do not prompt the user.
## Environment variables
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Space unique identifier.
How to get: In Meegle platform, double-click the project icon; or use project_key from project URL.
behavior:
- First check environment variable MEEGLE_PROJECT_KEY; if set, use it (do not prompt user)
- Else if default project_key is configured, use it
- Otherwise ask user to provide
outputs:
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Space unique identifier.
How to get: In Meegle platform, double-click the project icon; or use project_key from project URL.
behavior:
- First check environment variable MEEGLE_PROJECT_KEY; if set, use it (do not prompt user)
- Else if default project_key is configured, use it
- Otherwise ask user to provide
outputs:
The skill documents update operations that include destructive actions such as deleting field options (action: 2 delete) but does not instruct the agent to warn or confirm with the user before making irreversible configuration changes. In a configuration-management context, this can lead to accidental data loss, broken workflows, or invalid historical records if an agent performs the update directly from a user request without surfacing the risk.
The skill documents a destructive delete capability without a strong warning that the action removes relationship configuration and may be hard to recover. In an agent setting, a model could invoke this operation from an ambiguous user request or without explicit confirmation, causing unintended configuration loss.
The skill documents a role-deletion API but does not clearly warn the agent or end user that invoking it will permanently remove workflow-role configuration and may disrupt project setup. In an agent setting, missing an explicit confirmation/safety step increases the chance of accidental destructive actions, especially because the endpoint is presented as a normal callable operation alongside read/update APIs.
The skill documents a DELETE endpoint for workflow templates without clearly warning that the action is destructive and may be irreversible. In an agent setting, this increases the chance that a user or autonomous workflow invokes template deletion without informed confirmation, potentially causing loss of workflow configuration and operational disruption.
The skill explicitly documents an endpoint that returns team member user_keys and administrator lists for a space, but it provides no privacy, data-minimization, or handling guidance for this identity and role data. Even though the API is permission-gated, exposing or normalizing bulk member/admin enumeration in a skill without sensitivity warnings can encourage over-collection, logging, or downstream disclosure of organizational relationship data.
The skill documents an API with destructive side effects: deleting a user from space members automatically removes them from other user groups, and replacing members can overwrite the full membership set. Without an explicit operator warning or confirmation requirement in the skill guidance, an agent or user could perform unintended bulk access changes that are hard to detect before execution.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
**This API only supports user access credentials (user_access_token).** See **meegle-api-credentials** for how to obtain user_access_token.
- When adding a user from non-space members, the user is automatically added to space members.
- When deleting a user from space members, the user is automatically removed from other user groups.
### When to Use
No suspicious patterns detected.