T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependencies Create Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is not destructive, but it presents simulated biomedical literature scores as real PubMed/PMC analysis, so it should be reviewed before use.
Do not rely on this skill for real target-selection, literature review, biomedical reporting, or investment/research decisions unless it is changed to query real sources and label provenance clearly. If installed for demo use, run it in a sandbox, avoid opening CSV output from untrusted target names in spreadsheet software, and write reports only to disposable workspace paths.
requirements.txt:1Unpinned Third-Party Dependencies Create Supply-Chain Risk
scripts/main.py:363CSV Formula Injection Through Attacker-Controlled Target Names
scripts/main.py:445Unrestricted Output Path Allows Overwriting User-Writable Files
The file-level documentation markets the tool as a literature-mining novelty scorer, but the core search implementation fabricates pseudo-random results instead of querying PubMed. In a biotech/pharma context, this materially increases risk because users may trust the output for research strategy, target selection, or reporting, leading to deceptive analysis and potentially harmful downstream decisions.
The skill advertises executable Python workflows and explicit write-capable outputs, but it does not declare any tool scope such as permissions or allowed-tools. That creates a policy gap where an agent may execute file-writing behavior without an explicit least-privilege boundary, increasing the chance of unintended filesystem modification or misuse if the companion script is invoked automatically.
In a markdown file, trigger guidance should clearly distinguish when the skill should and should not be used. The 'When to Use' section uses broad phrasing such as 'evidence insight tasks' and repeats an incomplete description, but does not provide concrete trigger phrases, exclusions, or negative examples, which could lead to unintended invocation.
The CLI exposes a --db option suggesting users can choose PubMed/PMC/all, but the selected value is never used and the program always relies on simulated data. This is dangerous because it can mislead users into believing results came from a real biomedical source, causing incorrect scientific or prioritization decisions based on fabricated evidence.
The dependency 'dataclasses' is unpinned, so builds may resolve to different versions over time and reduce reproducibility. While this package is generally low risk and is backported mainly for older Python versions, leaving it unpinned still increases supply-chain uncertainty and makes it harder to assess exposure to vulnerable releases.
dataclasses
numpy
The dependency 'numpy' is unpinned, which allows installation of different versions across environments and time. This creates supply-chain risk because a vulnerable or incompatible release could be pulled in without review, and NumPy has a history of security advisories that cannot be ruled out without version pinning.
dataclasses
numpy
Because numpy is not pinned, it is impossible to determine whether the installed version is affected by one of the known advisories associated with the package. In a literature-mining skill, this is not especially high-risk by context, but it still weakens supply-chain assurance and could expose the environment to known flaws depending on what version gets resolved.
This code presents all user-facing CLI descriptions, help text, examples, and status messages in English only. The policy requires flagging language or locale constraints when the skill forces a specific language without user opt-in, and no alternative language selection or justification is provided here.