T08 · Insecure Dependencies
- Location
scripts/requirements.txt:1- Finding
Unbounded Third-Party Dependency Versions
- Content
View full analysis
Vulnerability Details
File Location:
scripts/requirements.txt, lines 1–2
Vulnerability Type: Unpinned third-party dependencies without integrity verification
Risk Level: MediumVulnerable Code
text holidays>=0.52 korean-lunar-calendar>=0.3.1The dependencies are installed through the command documented in
SKILL.mdandREADME.md:bash pip install -r scripts/requirements.txtTechnical Analysis
Both dependencies use open-ended minimum-version constraints. Consequently, the installation process can retrieve any future release that satisfies the minimum version, rather than a specific release reviewed with this project. The requirements file also lacks cryptographic hashes for package artifacts.
The package names are consistent with the packages described in the documentation, and the audit found no evidence of typosquatting, dependency confusion, or a currently malicious package. Nevertheless, the dependency policy creates a supply-chain exposure and makes installations non-reproducible. A future compromised release, malicious maintainer update, or unexpected breaking change could be installed automatically. Python packages may execute build or installation logic during installation, and their code is imported at runtime by
scripts/kr_holiday.py.Attack Path
- An attacker compromises a maintainer account, release process, or distribution artifact for one of the declared packages.
- The attacker publishes a new package version satisfying
holidays>=0.52orkorean-lunar-calendar>=0.3.1. - A user follows the documented installation command.
pipresolves the open-ended constraint to the attacker-controlled release.- Malicious package logic executes during installation or when
scripts/kr_holiday.pyimports and uses the dependency.
Impact Assessment
Malicious dependency code could execute with the privileges of the user or automation acc ...[truncated 517 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace open-ended constraints with exact versions that have been reviewed:
text holidays==<reviewed-version> korean-lunar-calendar==<reviewed-version> - Generate and record SHA-256 hashes for every accepted distribution artifact.
- Install with hash enforcement:
bash pip install --require-hashes -r scripts/requirements.txt - Use a lock-file workflow that also pins and hashes transitive dependencies.
- Prefer vetted binary wheels where appropriate and restrict package indexes to approved HTTPS repositories.
- Review dependency updates deliberately, including changelogs, ownership changes, artifact provenance, and vulnerability advisories, before updating pins.
- Perform installation and execution in an isolated virtual environment or container under a least-privileged account.
- Replace open-ended constraints with exact versions that have been reviewed:
