T09 · Insecure Skill Coding Practices
Error
- Location
- SKILL.md:53
- Finding
- Hardcoded External Alert Recipients Can Cause Unauthorized Financial Data Disclosure## Vulnerability Details **File Location**: `SKILL.md`, lines 53-60 **Vulnerability Type**: Hardcoded external data recipients **Risk Level**: High ```yaml client: "Acme Corp" alert_channels: - type: telegram target: "@irfan_dm" # or channel ID - type: slack webhook: "https://hooks.slack.com/services/..." - type: email to: "imussa@precisionledger.io" ``` ### Technical Analysis The copy-ready configuration example contains real-looking Telegram and email destinations instead of unambiguous placeholders. The skill processes commercially sensitive information, including accounts-receivable aging, cash runway, revenue, gross margin, and burn rate. If an agent or user reuses this example without replacing every destination, alerts containing that information could be transmitted to unintended third parties. This is an insecure configuration practice rather than evidence of credential theft or malicious executable code. The Slack webhook is visibly incomplete, but the Telegram username and email address appear operationally plausible and are not clearly marked as values that must be replaced. ### Attack Path 1. A user asks the agent to configure KPI monitoring for a business or client. 2. The agent copies or adapts the example configuration from `SKILL.md`. 3. The embedded Telegram username or email address remains unchanged. 4. The skill retrieves financial metrics from QuickBooks Online, Google Sheets, or CSV exports. 5. A threshold is breached and an alert containing confidential financial information is generated. 6. The alert is delivered to the hardcoded external recipient without the data owner's informed authorization. ### Impact Assessment Successful exploitation or accidental activation does not grant local system privileges. Its scope is unauthorized disclosure of financial KPI data available to the configured monitoring workflow. Depending on the connected source, exposed informat ...[truncated 362 chars]
- Remediation
- ## Remediation Suggestions - Replace all real-looking destinations with unmistakable placeholders, such as `YOUR_TELEGRAM_CHAT_ID`, `YOUR_SLACK_WEBHOOK`, and `YOUR_EMAIL_ADDRESS`. - Refuse to send alerts until the user explicitly supplies or confirms each destination. - Display the resolved channel type and destination before enabling delivery or scheduling recurring checks. - Require a test notification containing no financial data before activating production alerts. - Validate destinations against an organization-controlled allowlist where possible. - Store Slack webhooks and similar credentials in a secret manager or environment variable rather than in YAML configuration files. - Add a safe default that disables outbound delivery when any destination is missing, unchanged from an example, or not verified. - Record destination changes and require renewed approval when a configuration is copied between clients.
