T09 · Insecure Skill Coding Practices
- Location
scripts/main.py:444- Finding
Unrestricted Output Path Allows Arbitrary File Overwrite
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill presents itself as real biomedical literature mining, but the included implementation generates simulated results while also allowing loosely scoped report writes.
Review before installing. Treat any scores or reports from this version as synthetic demonstration output, not real PubMed/PMC evidence. Avoid using --output with arbitrary or absolute paths, do not open CSV exports from untrusted target inputs in a spreadsheet, and prefer a fixed, reviewed dependency set before running it in a research environment.
scripts/main.py:444Unrestricted Output Path Allows Arbitrary File Overwrite
scripts/main.py:350CSV Formula Injection Through Attacker-Controlled Target Value
requirements.txt:1Unpinned and Unnecessary Third-Party Dependencies
The documented behavior claims real literature mining from PubMed/PMC and database-selectable analysis, while the implementation reportedly uses simulated data and ignores database settings. This is dangerous because users may make scientific, regulatory, or prioritization decisions based on fabricated or misleading outputs that appear evidence-based.
The skill advertises Python execution and file output but does not declare any explicit tool scope such as allowed tools or permissions. In an agent environment, that omission weakens policy enforcement and can let the skill write files without clear user-visible constraints, increasing the chance of unintended or abusive filesystem actions.
The skill documentation describes external API access and report generation but does not clearly warn that input targets and associated metadata may be transmitted to third-party services and written to disk. In biomedical workflows, even seemingly simple target lists can be sensitive research context, so the lack of disclosure can cause unintended data exposure and weakens informed consent by users.
The code and CLI present this tool as performing PubMed-based literature mining, but the implementation only generates pseudo-random simulated results seeded from the query string. In a bioinformatics or target-prioritization workflow, this can mislead users into treating fabricated evidence as real analysis, causing incorrect scientific, business, or research decisions.
The dependency list is unpinned, so installations may resolve to different versions over time. This creates supply-chain and reproducibility risk because a future incompatible or vulnerable release could be pulled without review, even though dataclasses itself is generally low risk and is only needed on older Python versions.
dataclasses
numpy
numpy is unpinned, which means the environment may install any available version, including releases with known security defects or breaking behavior. Because this skill performs biological literature and trend analysis, it likely processes external data at scale, so dependency drift can increase the chance of vulnerable code being introduced into runtime environments.
dataclasses
numpy
The manifest does not specify a numpy version, so it is impossible to verify whether the deployed package is affected by one of the known advisories. This is dangerous because a resolver may select a vulnerable version in some environments, leaving the skill exposed to memory-safety, denial-of-service, or file-handling issues associated with affected NumPy releases.
The CLI offers a database-selection option suggesting the user can choose among PubMed, PMC, or all sources, but the argument is ignored entirely. This is deceptive interface behavior that can cause users to rely on an assumed data source or breadth of coverage that never actually affects execution.