T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14-22
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: MediumVulnerable Code
markdown **Python:** ```bash pip install tavily-pythonJavaScript:
bash npm install @tavily/coretext ### Technical Analysis The installation instructions retrieve the current versions of `tavily-python` and `@tavily/core` without pinning reviewed versions or verifying package integrity. Consequently, the code installed by a user can differ from the code available when this skill was audited. Package installation can run package build logic, installation hooks, and code from transitive dependencies. If a package release, maintainer account, registry, or transitive dependency is compromised, following these instructions could introduce attacker-controlled code. The project does not provide lockfiles, package hashes, trusted-registry constraints, or an allowlist of reviewed versions. This finding identifies a supply-chain hardening deficiency. The audited file contains no evidence that either named package is currently malicious. ### Attack Path 1. An attacker compromises a referenced package, one of its transitive dependencies, its maintainer account, or the package registry distribution channel. 2. The attacker publishes a malicious version that satisfies the unconstrained installation command. 3. A user follows the instructions and runs `pip install tavily-python` or `npm install @tavily/core`. 4. The package manager resolves and downloads the malicious release because no version or integrity constraint prevents it. 5. Attacker-controlled code executes through installation/build hooks or when the installed library is imported and used. ### Impact Assessment Successful exploitation could execute code with the privileges of the user or automation account running the package manager. Depending on that acc ...[truncated 328 chars]- Remediation
View remediation
Remediation Suggestions
- Pin each dependency to a specifically reviewed version rather than installing an unconstrained latest release.
- Supply lockfiles for reproducible installations and update them through a controlled dependency-review process.
- For Python, use a hash-locked requirements file and install it with
pip install --require-hashes -r requirements.txt. - For JavaScript, commit
package-lock.jsonand direct users to usenpm ciinstead of unconstrained installation. - Configure package managers to use approved registries and reject unexpected dependency sources.
- Review transitive dependencies and use automated vulnerability and provenance scanning.
- Perform package installation in a least-privileged, isolated environment without unnecessary secrets or host filesystem access.
- Document a controlled process for reviewing and updating pinned versions.
