T08 · Insecure Dependencies
- Location
SKILL.md:96- Finding
Unpinned Third-Party Dependencies Create a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 96-97 and 271-275
Vulnerability Type: Unpinned package installation from mutable third-party repositories
Risk Level: MediumVulnerable Code Snippet
bash pip install bedrock-agentcore bedrock-agentcore-starter-toolkit langgraph uv tool install bedrock-agentcore-starter-toolkitThe dependency table at lines 271-275 also recommends installing the same packages, as well as
uv, without version or integrity constraints:bash pip install bedrock-agentcore pip install bedrock-agentcore-starter-toolkit pip install langgraph pip install uvTechnical Analysis
The documented installation commands resolve mutable package names without exact version constraints, cryptographic hashes, a lock file, or an explicitly trusted package index. Consequently, the code installed when a user follows these instructions may differ from the dependencies that existed when the Skill was audited.
Python packages and their transitive dependencies can execute package-controlled code during installation or later when imported. If a package publisher account, release pipeline, package repository, or transitive dependency is compromised, following these commands may execute attacker-controlled code with the permissions of the user running the installer.
No malicious package is proven to be present. The vulnerability is the absence of controls that would provide reproducible and integrity-verified dependency resolution.
Attack Path
- An attacker compromises a listed package, one of its transitive dependencies, or its package-publishing account.
- The attacker publishes a malicious release under the package name accepted by the unpinned command.
- A user follows the Skill documentation and executes
pip installoruv tool install. - The resolver selects the malicious or unexpectedly modified release.
- Package installation logic or impo ...[truncated 790 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact, reviewed version.
- Maintain a lock file that also constrains transitive dependencies.
- Require cryptographic hashes, such as through a hash-locked requirements file and
pip --require-hashes. - Configure an explicitly trusted package index and prevent unintended fallback to extra indexes.
- Install dependencies in an isolated virtual environment or disposable build container using an unprivileged account.
- Scan resolved packages and container images for known vulnerabilities before deployment.
- Establish a controlled dependency-update process that reviews release changes and regenerates hashes.
- Avoid exposing AWS credentials to package installation processes. Prefer short-lived, least-privilege roles during subsequent deployment operations.
