T08 · Insecure Dependencies
- Location
SKILL.md:101- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 101
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable Code
bash pip3 install python-docx mammothThe same installation command also appears in:
README.md, line 51README_EN.md, line 51
Technical Analysis
The documented installation command resolves
python-docxandmammothfrom the active Python package index without specifying reviewed versions or cryptographic hashes. No lock file or hash-validated requirements file is provided.Consequently, the code installed by users can change independently of the audited project. A compromised package release, dependency account, package index, or configured mirror could introduce arbitrary code during installation or runtime. Python packages may execute build backend or setup logic as part of installation, and imported dependencies execute initialization code when the document-processing scripts start.
This finding does not establish that the named packages are currently malicious. It identifies the absence of controls needed to make dependency resolution reproducible and resistant to supply-chain compromise.
Attack Path
- An attacker compromises a dependency release channel, maintainer account, package index, or package mirror used by the victim.
- The attacker publishes or serves a malicious version of
python-docx,mammoth, or one of their transitive dependencies. - A user follows the project documentation and runs:
bash pip3 install python-docx mammoth - Pip resolves the attacker-controlled version because no version or hash constraints are present.
- Malicious package code executes during installation, import, or document processing.
- The payload acts with the privileges and data access of the user running pip or the project scripts.
Impact Assessment
Successful exploitation could permit arbitrary code execution under the invoking user's accou ...[truncated 360 chars]
- Remediation
View remediation
Remediation Suggestions
- Create a reviewed requirements file with exact versions for direct and transitive dependencies.
- Generate and verify cryptographic hashes for every package artifact.
- Require hash validation during installation, for example:
bash python3 -m pip install --require-hashes -r requirements.txt - Use a dependency-locking tool such as
pip-toolsto produce reproducible dependency sets. - Install dependencies in a dedicated virtual environment rather than the system Python environment.
- Document the approved package index and avoid untrusted mirrors or extra indexes.
- Add automated dependency vulnerability and integrity scanning to the release process.
- Update
SKILL.md,README.md, andREADME_EN.mdso all installation instructions use the secured requirements file.
