T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unnecessary and Unpinned Third-Party Dependencies Create Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This grant-review skill is purpose-aligned and local-only, but users should handle proposal files and generated outputs as sensitive.
Install in an isolated environment, preferably after removing the unnecessary requirements. Use TXT or MD inputs for accurate review because PDF/DOCX extraction is not implemented. Save outputs only to intentional workspace paths and avoid overwriting existing files, since generated reviews may contain sensitive proposal-derived content.
requirements.txt:1Unnecessary and Unpinned Third-Party Dependencies Create Supply-Chain Risk
scripts/main.py:580Caller-Controlled Output Path Permits Arbitrary File Overwrite Within Process Privileges
The skill advertises file read/write behavior via its CLI and library usage, but the manifest does not declare an explicit tool scope such as permissions or allowed-tools. This creates a capability mismatch: an orchestrator or reviewer cannot reliably constrain what files the skill may access, increasing the risk of unintended file reads, overwrites, or use on sensitive proposal materials.
The description uses broad trigger terms like 'mock review, critique, or evaluation of a grant proposal,' which can activate the skill in loosely related contexts without a precise boundary. Over-broad activation is dangerous because the skill processes local files and writes outputs, so accidental invocation could expose sensitive proposal content or perform unintended file operations during unrelated user requests.
The CLI advertises support for proposal files in PDF and DOCX formats, which is consistent with the skill's stated purpose of reviewing grant proposals. However, for those formats the code does not extract proposal content at all; it substitutes a placeholder message, meaning the resulting review is based on the placeholder text rather than the actual proposal.
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
In comparison mode, the script writes generated review content derived from proposal files directly to the path given by --output. Although the operation is part of the tool's purpose, there is no explicit user-facing disclosure at the write point that the output may contain sensitive proposal material or reviewer-style summaries, which is relevant for a skill handling potentially confidential research content.
The script saves the generated summary statement and recommendations to a user-specified output file, but does not explicitly warn that this persists content derived from the input proposal. For a skill processing grant proposals, a user-facing disclosure about writing potentially sensitive analysis output would improve safety and transparency.
No suspicious patterns detected.