T09 · Insecure Skill Coding Practices
- Location
SKILL.md:23- Finding
Synthetic banking data is presented as current operational account data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This banking assistant runs only a local demo-data script, but it can present generated financial records and recurring summaries as live account information without a clear warning.
Review this skill before installing it. It appears to be a demo banking assistant, not a real bank integration; do not rely on its balances, restrictions, payment statuses, or recommended actions unless it is changed to clearly label every account response and scheduled report as synthetic demonstration data.
SKILL.md:23Synthetic banking data is presented as current operational account data
The manifest presents the skill as a local-script data retriever, but the body instructs the agent to browse external bank and legal websites for procedures. This expands the skill's effective trust boundary and capabilities beyond what the manifest discloses, which can surprise reviewers and users and lead to unvetted network access during financial-support interactions.
The activation text includes broad, conversational phrases like asking whether everything is OK with the account or what news there is with the bank. Because this skill handles sensitive financial data, vague triggers can cause accidental invocation and disclosure of account status in contexts where the user did not clearly intend to access banking information.
The skill recommends sending a daily account summary into chat at 09:00 without warning about the sensitivity of balances, transactions, restrictions, certificates, and authority data. Scheduled posting of financial information into a chat channel can create persistent exposure to unintended recipients, channel-membership drift, and archival leakage.
The skill instructs the agent to visit external banking and legal sites even though its stated purpose is to return account information from a local JSON-producing script. In a finance-context skill, unnecessary browsing increases exposure to prompt injection, data leakage through contextual queries, and capability creep into actions not required for the core function.
The summary section repeats loose trigger phrases for producing a full account summary without clear confirmation requirements. In this context, that can increase the chance of over-broad responses that expose balances, transactions, or restrictions when the user's request was ambiguous.
The file’s natural-language docstring presents all user-facing usage instructions exclusively in Russian, and all generated field labels and values are also Russian-language strings. This can violate a language/locale policy when a skill imposes a specific language without giving the user a choice or documenting a justified locale restriction.
No suspicious patterns detected.