T09 · Insecure Skill Coding Practices
- Location
SKILL.md:53- Finding
Hardcoded External Alert Recipients Can Cause Unauthorized Financial Data Disclosure
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 53-60
Vulnerability Type: Hardcoded external data recipients
Risk Level: Highyaml 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
- A user asks the agent to configure KPI monitoring for a business or client.
- The agent copies or adapts the example configuration from
SKILL.md. - The embedded Telegram username or email address remains unchanged.
- The skill retrieves financial metrics from QuickBooks Online, Google Sheets, or CSV exports.
- A threshold is breached and an alert containing confidential financial information is generated.
- 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
View remediation
Remediation Suggestions
- Replace all real-looking destinations with unmistakable placeholders, such as
YOUR_TELEGRAM_CHAT_ID,YOUR_SLACK_WEBHOOK, andYOUR_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.
- Replace all real-looking destinations with unmistakable placeholders, such as
