T05 · Unauthorized Access and Privilege Escalation
- Location
index.cjs:218- Finding
Reusable Bot Credentials Are Retrieved from Local Configuration and Disclosed to the Remote Backend
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill broadly matches its stated subscription-alert purpose, but it handles reusable API and bot credentials in ways users should review carefully before installing.
Install only if you trust listingalert.org and are comfortable giving its backend your email or chat identifiers and, for Telegram/Discord delivery, full bot tokens. Prefer a dedicated bot token with minimal permissions, avoid custom API URLs unless you control them, do not use HTTP endpoints, and rotate any API key or bot token that may have been exposed in command history or logs.
index.cjs:218Reusable Bot Credentials Are Retrieved from Local Configuration and Disclosed to the Remote Backend
index.cjs:149Unrestricted Custom API URL Permits Credential Exfiltration and Plaintext Transmission
index.cjs:149API Keys and Bot Tokens Are Exposed Through Command-Line Arguments
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
---
name: crypto-listing-alert
description: Use when users want to subscribe, pay, or manage Crypto Listing Alert notifications for exchange listing events and need Telegram, Discord, or Email delivery with API-key login.
version: 1.0.2
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- If `logged_in = true`: proceed normally.
- If `logged_in = false`: immediately guide user to get API key from website first, then login:
1. Visit `https://listingalert.org`
2. Register/login and generate API key
The skill explicitly instructs the agent to read Telegram/Discord bot tokens and channel identifiers from local OpenClaw config, which expands its access to sensitive local secrets beyond what a subscription-management workflow minimally requires. If followed, this creates a secret-exfiltration and privilege-abuse path because the agent may retrieve credentials from the host environment and send them to the external CLI/backend during payment or subscription operations.
The skill says to pull data from message context and local config but does not clearly disclose that sensitive identifiers and tokens may be accessed and transmitted as part of the workflow. This lack of transparency increases the risk of unauthorized data use because users and operators are not properly warned that local secrets and contextual metadata are inputs to external actions.
The login flow saves the provided API key to a file in the user's home directory and only reports 'Login successful. API key saved.' It does not clearly disclose that a credential is being persisted on disk at a specific path, which is a sensitive operation involving credential storage.
The code sends email addresses, Telegram chat IDs, Discord channel IDs, and bot tokens to the remote API as part of subscription creation. Although the command purpose implies remote interaction, there is no explicit warning in the code's user-facing text that these potentially sensitive values are transmitted to the service.
The payment flow posts email addresses, chat or channel identifiers, and bot tokens to the API endpoint to create an order. This is a network transmission of potentially sensitive data, but the user-facing help and runtime messages do not explicitly disclose that these values will be sent to the external service.