T08 · Insecure Dependencies
- Location
SKILL.md:25- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:25-34references/sdk.md:14-17references/sdk.md:144-147references/integrations.md:19-22references/integrations.md:263-266references/integrations.md:309-312
Vulnerability Type: Unpinned and unverifiable third-party dependencies
Risk Level: MediumVulnerable Code
SKILL.md:25-34:markdown ## Installation **Python:** ```bash pip install tavily-pythonJavaScript:
bash npm install @tavily/coretext `references/sdk.md:14-17`: ```markdown ### Installation ```bash pip install tavily-pythontext `references/sdk.md:144-147`: ```markdown ### Installation ```bash npm install @tavily/coretext `references/integrations.md:19-22`: ```markdown ### Installation ```bash pip install -U langchain-tavilytext `references/integrations.md:263-266`: ```markdown ### Installation ```bash npm install ai @ai-sdk/openai @tavily/ai-sdktext `references/integrations.md:309-312`: ```markdown ### Installation ```bash pip install 'crewai[tools]'text ### Technical Analysis The documented installation commands retrieve mutable package versions from public package registries without exact version pins, lockfiles, package hashes, or integrity verification. Consequently, the code installed by a user may differ from the code reviewed when this Skill was published. Python and Node.js package installation can execute package-controlled build or installation logic. Runtime imports subsequently execute package code inside the integrating application. The `pip install -U langchain-tavily` instruction is particularly exposed because `-U` explicitly replaces an existing installation with the newest available compatible release. No evidence indicates that the currently named packages are malicious. The confirmed weakness is that the instructi ...[truncated 1820 chars]- Remediation
View remediation
Remediation Suggestions
-
Replace unconstrained dependency commands with exact, reviewed versions, for example:
bash pip install tavily-python==REVIEWED_VERSION npm install @tavily/core@REVIEWED_VERSION --save-exact -
Remove unconditional upgrade behavior such as
pip install -Ufrom standard setup instructions. Upgrades should be deliberate and reviewed. -
Provide reproducible dependency metadata:
- Use a Python lockfile or a fully pinned requirements file.
- Use
package-lock.json,npm-shrinkwrap.json, or an equivalent JavaScript lockfile. - Pin relevant transitive dependencies where the selected ecosystem tooling supports it.
-
Add integrity verification:
- Publish Python requirements with hashes and install using
pip install --require-hashes. - Commit and enforce npm lockfile integrity metadata.
- Use only trusted package registries and document approved registry configuration.
- Publish Python requirements with hashes and install using
-
Run dependency vulnerability and provenance checks in CI, such as package auditing, lockfile review, and publisher or signature verification where available.
-
Recommend installation inside an isolated virtual environment or container under a non-privileged account. Avoid installing dependencies as root or in a broadly privileged CI/CD context.
-
Establish a controlled update process in which dependency changes are reviewed, scanned, tested, and explicitly approved before users are instructed to adopt them.
-
