T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Mutable and Unhashed Third-Party Dependencies Permit Supply-Chain Code Execution
- Content
View full analysis
=2.2,<3 numpy>=2.0,<3 pyyaml>=6.0 python-dotenv>=1.0 requests>=2.31 ibflex>=0.16 ``` The documented installation procedure executes: ```bash git clone https://github.com/AlexLiu0130/ibkr-options-assistant.git cd ibkr-options-assistant python -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` The deprecated Skill also redirects users to a mutable Git repository: ```bash git clone https://github.com/AlexLiu0130/ibkr-options-assistant.git \ ~/.claude/skills/ibkr-options-assistant ``` ### Technical Analysis Six direct dependencies use version ranges rather than exact versions, and none of the dependencies is protected by a cryptographic package hash. Consequently, two installations performed at different times may resolve to different package artifacts that were not included in or validated by this audit. Although `ib_async` is exactly version-pinned, it is also not hash-pinned, and its transitive dependencies are not locked. Exact version pinning alone does not verify that the downloaded artifact is the expected artifact. The installation documentation also clones the default branch of an external GitHub repository rather than an immutable commit or signed release. This permits the effective code installed by a user to change after the reviewed Skill package was published. No evidence was found that the currently declared packages are malicious, typosquatted, or intentionally compromised. The vulnerability is the absence of controls that would prevent a future upstream or package-index compromise from becoming local code execution. ### Attack Path 1. An attacker compromises an upstream package maintainer account, package-index p ...[truncated 1731 chars]- Remediation
View remediation
