T08 · Insecure Dependencies
- Location
calibration_report.py:27- Finding
Unpinned Third-Party Dependency Executes in a Runtime Containing a Trading API Key
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly performs the advertised local trading-journal analysis, but it asks for an unnecessary trading API key and can read live journal data unexpectedly, so it needs review before installation.
Install only after you are comfortable giving this scheduled report access to local trading journals and a SIMMER_API_KEY. Prefer setting CALIB_JOURNAL_PATH explicitly, avoid providing live credentials unless the skill is revised to need them, and use a pinned trusted simmer-sdk version.
calibration_report.py:27Unpinned Third-Party Dependency Executes in a Runtime Containing a Trading API Key
A description-behavior mismatch is dangerous because users may trust the skill to perform financial analysis when it reportedly only inspects status/configuration and does not compute the promised calibration metrics. In a trading-journal context, this can lead to incorrect decisions, false assurance, and misuse of API keys or local data under misleading pretenses, even if there is no overtly malicious payload.
Without declared permissions the skill's intent is opaque and cannot be validated.
The journal discovery logic for non-live mode explicitly appends the live journal path as a fallback, causing a supposedly sim-focused analytics skill to read real trading history without an explicit user opt-in. This creates a data-scope violation and can expose or process sensitive live trading activity unexpectedly, especially in automated or shared environments.
The markdown explicitly tells users to set SIMMER_API_KEY, which is a sensitive credential, but provides no warning about keeping it secret or avoiding shell history/shared environments. For markdown files, SQP-2 applies when descriptions omit warnings about behaviors that could affect privacy or system integrity.
The skill's stated purpose is local calibration reporting over trade journals, but the file includes a SimmerClient initializer that reads API credentials and configures a live/sim trading venue. That capability is not used anywhere in the reporting flow and is not justified by the manifest's analytics-only purpose. Even unused, retaining trading-client setup expands the code's apparent authority and intent surface.