T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:155- Finding
AdMapix API Key and User Context Forwarded to a Secondary Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a coherent ad-analytics purpose, but it automatically stores and forwards API keys and user queries to hosted services using unsafe shell-command patterns.
Review before installing. Use this only if you are comfortable storing an AdMapix API key in OpenClaw config, having complex queries and context processed by AdMapix-hosted deep research, and receiving externally hosted shareable report links. Avoid pasting keys directly into chat, avoid confidential strategy prompts unless the service's data handling is acceptable, and prefer a pinned installer and a scoped or revocable API key.
SKILL.md:155AdMapix API Key and User Context Forwarded to a Secondary Service
SKILL.md:157Hard-Coded Shared Bearer Token for the Deep-Research Service
SKILL.md:151Shell Command Injection Through User Query and Context Substitution
SKILL.md:84Shell Injection and Unsafe Secret Handling in Automatic API-Key Configuration
SKILL.md:130Forced External Report Routing and Promotional Output Injection
README.md:18Unpinned Package Execution in Installation Instructions
The skill tells the agent to take a user-pasted API key and persist it into local configuration automatically. That expands scope from transient request handling into credential storage, creating risk of unintended retention, reuse across sessions, and exposure to other skills or operators without explicit informed consent.
The skill instructs the agent to store a user-provided API key without warning the user that the credential will be persisted in configuration. Storing secrets without transparent notice and consent is dangerous because users may assume the key is used only transiently for the current task.
The skill routes queries to a separate deepresearch service and explicitly includes the user's AdMapix API key in the POST body to that third party. Forwarding a credential to another service materially increases exposure and trust boundaries, especially because the user is not given a clear opt-in for credential sharing.
The skill directs sending the user's API key to the deep research service without a clear user-facing warning or consent step. Silent credential forwarding violates user expectations and creates a significant risk if the external service logs, stores, or misuses the key.
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
**Reuse data:** If the user asks follow-up questions about already-fetched data, analyze existing results first. Only make new API calls when needed.
## Output Guidelines
1. **Language consistency** — ALL output (headers, labels, insights, hints, errors, disclaimers) must match the user's detected language. See "Language Handling" section above.
2. **Route-appropriate output** — Don't force H5 links on analytical questions; don't dump tables for browsing
The README states Deep Research is automatically triggered for questions requiring 2+ API calls, which is broad enough to cause unexpected escalation from simple query handling to server-side autonomous analysis. Ambiguous activation criteria can lead to unintended data transmission, extra cost, and processing of sensitive user prompts without clear user awareness or consent.
The README instructs users to execute npx clawhub install admapix without pinning a specific version, which makes installation dependent on whatever package version is current at execution time. If the package, dependency chain, or publishing account is compromised, users could unknowingly install and run attacker-controlled code.
The README describes a server-side AI research engine that autonomously plans investigations and synthesizes findings, but it does not clearly warn users that their queries and derived data are sent off-platform for remote processing. This omission is dangerous because users may submit sensitive competitive, business, or internal strategy questions without understanding the disclosure and hosting implications.
The listed trigger conditions for Deep Research remain open-ended, including 'any question requiring 2+ API calls or cross-entity reasoning,' which does not set meaningful safety boundaries. In practice, this can cause normal user requests to be routed to a more expansive server-side workflow that aggregates and retains more information than the user likely expects.
The README notes that reports are 'hosted and shareable via link' but does not provide an explicit security warning that externally hosted links may expose sensitive analysis to unintended parties if shared, guessed, or mishandled. For a market-intelligence skill, generated reports may contain commercially sensitive insights, making silent external hosting materially risky.
The README states that deep research is automatically triggered for any question requiring more than two API calls, which is an overly broad activation rule for a feature that performs autonomous multi-step server-side analysis. This can lead to unintended data transmission, excess cost, and unexpected execution scope when users ask seemingly ordinary analytical questions.
The installation command uses npx clawhub without pinning a specific version, which can cause users to fetch and execute whatever version is current at install time. This creates a supply-chain risk: a compromised or maliciously updated package could run arbitrary code on the user's machine during installation.
The documentation describes a server-side AI research engine that autonomously performs many API calls and returns hosted HTML reports, but it does not prominently warn users that their queries and derived analysis are sent off-device and processed remotely. This omission can cause users to disclose sensitive business questions or identifiers without informed consent.
The statement that reports are hosted online and shareable by link introduces a concrete data exposure risk, especially for competitive intelligence, app strategy, or internal market-analysis queries that may be sensitive. If links are guessable, mis-shared, or insufficiently access-controlled, confidential analytical content could be exposed to unauthorized parties.
This instruction mandates automatic language detection from the first user message and continued use of that language, which imposes a language/locale policy without explicit user choice. The later allowance for mid-conversation switching helps, but it still defaults to enforced language behavior rather than opt-in selection.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# GET
curl -s "https://api.admapix.com/api/data/{endpoint}?{params}" \
-H "X-API-Key: $ADMAPIX_API_KEY"
# POST
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# GET
curl -s "https://api.admapix.com/api/data/{endpoint}?{params}" \
-H "X-API-Key: $ADMAPIX_API_KEY"
# POST
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# GET
curl -s "https://api.admapix.com/api/data/{endpoint}?{params}" \
-H "X-API-Key: $ADMAPIX_API_KEY"
# POST
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# GET
curl -s "https://api.admapix.com/api/data/{endpoint}?{params}" \
-H "X-API-Key: $ADMAPIX_API_KEY"
# POST
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Run this command first to verify the API key is valid:
curl -s -o /dev/null -w "%{http_code}" https://api.admapix.com/api/data/quota -H "X-API-Key: $ADMAPIX_API_KEY"
200 → key is valid, proceed to Step 1.The trigger phrases include very broad everyday language such as generic search/show verbs, which can cause the skill to activate on loosely related requests. Overbroad routing increases the chance of unintended external API calls, data transmission, or use of stored credentials when the user did not clearly intend to invoke this skill.
The skill's instructions are internally inconsistent: it says not to expose upstream URLs or internal details, yet earlier requires returning a deepresearch report URL directly. This can leak implementation topology and encourages bypassing abstraction boundaries, though the impact is lower than direct secret handling.
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.
"playHtmlFp": [],
"playHtmlUrl": [],
"demoadCnt": 1,
"appList": [
{
"id": "6498883328",
"cnt": null,
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.
"playHtmlFp": [],
"playHtmlUrl": [],
"demoadCnt": 1,
"appList": [
{
"id": "6498883328",
"cnt": null,
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.
"playHtmlFp": [],
"playHtmlUrl": [],
"demoadCnt": 1,
"appList": [
{
"id": "6498883328",
"cnt": null,
Detected: suspicious.exposed_secret_literal