T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependency Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
requirements.txt:1
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code:
text rdkit-pypiTechnical Analysis
The project declares
rdkit-pypiwithout an exact version or integrity hash. Consequently, separate installations can resolve to different package releases and execute package code that was not covered by this audit.Python packages may execute code during installation or when imported. If the selected release is compromised, removed and replaced, or otherwise changes incompatibly, installing the project dependencies could introduce attacker-controlled code. The lack of a lock file or hash verification also prevents installers from confirming that the downloaded artifact is the one reviewed and approved by the project.
The documentation is inconsistent with this requirement:
SKILL.mdlistsrdkit-pypias a dependency but later states that no additional Python packages are required. This inconsistency may cause users or automation to install the dependency without applying an established dependency-management process.Attack Path
- An attacker compromises a future release, distribution account, or artifact in the dependency supply chain.
- A user or deployment pipeline runs a package installation command against
requirements.txt. - Because no version or hash is specified, the installer resolves the currently available matching release.
- Malicious package installation or import-time code executes under the privileges of the user or service performing the installation.
- The malicious code can access resources available to that installation environment.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the developer, CI worker, container, or service account installing or importing the dependency. The accessible scope may include project files, buil ...[truncated 263 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed, exact version, for example
rdkit-pypi==X.Y.Z. - Generate a locked dependency file containing cryptographic hashes and install it with hash enforcement, such as
pip install --require-hashes -r requirements.lock. - Obtain packages only from an approved registry and disable untrusted extra indexes in deployment environments.
- Run automated vulnerability and provenance checks against the resolved dependency and its transitive dependencies.
- Perform dependency installation in an isolated, least-privileged build environment without unnecessary credentials.
- Update
SKILL.mdso its prerequisites consistently document the required RDKit package and the approved installation procedure.
- Pin the dependency to a reviewed, exact version, for example
