T09 · Insecure Skill Coding Practices
- Location
SKILL.md:37- Finding
Hard-Coded API Credential Exposed in Skill Documentation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a real A-share market-report workflow, but it needs Review because it exposes an API key and automatically reads and stores portfolio-derived data without clear per-run consent.
Install only if you are comfortable giving the workflow access to your IMA holdings/watchlist folder and storing a detailed portfolio-derived report in IMA. The publisher should remove and rotate the exposed API key, pin or verify dependencies, narrow triggers, and add explicit confirmation before reading portfolio data or uploading reports.
SKILL.md:37Hard-Coded API Credential Exposed in Skill Documentation
SKILL.md:27Mutable and Unverified Third-Party Skill Dependencies
The description advertises market analysis and report upload behavior without clearly warning users that generated outputs will be persisted to an external knowledge base. Lack of disclosure undermines informed consent and can lead users to trigger storage of sensitive derived financial information unintentionally.
The trigger phrases are broad enough to match ordinary market-analysis requests, which can cause the skill to activate unexpectedly. Because this skill reads holdings data and uploads reports, accidental invocation materially increases the chance of unintended data access and persistence.
The skill embeds a concrete API key directly in the documentation, which exposes a credential to any user of the skill and enables unauthorized use of the dependent Eastmoney service. In a cloud-executed workflow, leaked credentials can be abused at scale, incur cost, and potentially grant access to protected financial-data features or associated account resources.
The skill instructs the agent to access a specific IMA folder containing holdings/watchlist data, which are sensitive personal financial records. Hard-wiring retrieval of that data broadens access beyond generic market analysis and can expose investment positions without clear consent or scope limitation.
The markdown instructs reading holdings and watchlist data from the knowledge base without an explicit privacy warning or consent gate. Since portfolio composition is sensitive financial information, silent retrieval increases the risk of unauthorized processing or disclosure.
The workflow authorizes reading portfolio/watchlist data and later storing derived analysis back into the knowledge base without confirmation or minimization controls. This creates a full sensitive-data pipeline where personal financial records are ingested, enriched, and persisted automatically, magnifying privacy and confidentiality risks.
The final report template preserves full per-stock holdings analysis, which can reveal detailed investment positions, diagnostics, and strategy recommendations. Persisting that level of granularity in a knowledge base increases the blast radius of any later unauthorized access or unintended sharing.
The instructions direct automatic upload of the final report to IMA without a clear warning that the data will be retained and may contain holdings-derived analysis. This can create unintended long-term storage of sensitive investment information and increase exposure if the knowledge base is shared or later queried by others.
The skill automatically uploads a compiled report that includes holdings-derived content, turning a transient analysis task into persistent storage of sensitive personal financial data. In context, this is more dangerous because upload is mandatory in the workflow and the user is not prompted to approve the transfer or retention.
The skill name, description, triggers, and operational instructions are entirely in Chinese, which effectively imposes a language constraint on use. The file does not offer an alternative language option or explicitly state that the skill is intentionally region/language-specific.
The user-facing description and dependency descriptions are entirely in Chinese and specifically target A-share market analysis, but the manifest provides no indication that language is selectable or that Chinese is a documented locale constraint. This can violate a language/locale policy when a skill implicitly forces one language for all users without opt-in.