T09 · Insecure Skill Coding Practices
- Location
scripts/main.py:679- Finding
Unrestricted Report Path Allows Overwriting Arbitrary Writable Files
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This biotech scoring skill is not malicious, but it overstates its data-backed investment analysis and can overwrite user-writable files when saving reports.
Install only if you treat this as a demonstration, not as reliable investment or R&D advice. Avoid running pip install -r requirements.txt unless the dependencies are removed or pinned, and do not use --save with absolute paths, ../ paths, symlinks, or existing files until output-path validation and overwrite protection are added.
scripts/main.py:679Unrestricted Report Path Allows Overwriting Arbitrary Writable Files
requirements.txt:1Unnecessary and Unpinned Third-Party Dependencies Create Supply-Chain Exposure
The skill advertises local script execution and report saving, but does not declare any explicit tool scope such as allowed-tools or permissions. That mismatch can lead to overbroad runtime access or unclear enforcement boundaries, increasing the chance that file-write behavior is invoked without proper review or sandbox policy alignment.
The trigger condition is written broadly enough to match ordinary conversations about biotech platforms, investment potential, or modality comparisons. This can cause unintended invocation of a script-capable skill in contexts where the user did not explicitly request tooling, increasing the risk of unnecessary code execution, file output, or confusing autonomous behavior.
The market potential score is derived from hardcoded per-technology lookup tables rather than analysis of the stated dimensions, so the output can present subjective embedded rankings as if they were analytic results. In this skill's context of investment and therapeutic platform selection, that mismatch increases the risk of deceptive or overconfident recommendations.
The skill claims to evaluate clinical trial progression, patent landscape maturity, and VC funding trends, but it actually operates on a fixed mock dataset and hardcoded assumptions. In an investment and R&D prioritization context, this is dangerous because users may rely on outputs that appear evidence-based but are not grounded in current or user-supplied data, leading to materially misleading decisions.
The document is predominantly in English, but line L156 introduces Chinese text ("AI自主验收状态: 需人工检查") without explanation or offering the user a language choice. This creates a language policy issue because the skill imposes mixed-language output/instructions without opt-in or justification.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
dataclasses
enum
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
dataclasses
enum
The manifest describes prediction, analysis, and prioritization scoring for biotechnology platforms, but does not mention persisting outputs to arbitrary file paths. While report generation is related, writing to disk is additional behavior beyond the described analytic scope.
This code writes report output to a user-supplied file path via open(..., "w"), which can overwrite existing files. Although the script exposes a --save option, there is no explicit warning in the help text, prompt, or comment that using it will create or overwrite files on disk.
No suspicious patterns detected.