T08 · Insecure Dependencies
- Location
scripts/taiwan_calendar.py:3- Finding
Unpinned Automatically Installed Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
scripts/taiwan_calendar.py:3-8
Vulnerability Type: Supply-chain exposure through unconstrained dependency resolution
Risk Level: MediumVulnerable Code
python # /// script # requires-python = ">=3.11" # dependencies = [ # "requests", # "python-dateutil", # ] # ///The documented execution command uses
uv run --managed-python, causinguvto resolve and install these dependencies automatically. Neither dependency has an exact version constraint, and the project contains no reviewed lockfile or package hashes.Technical Analysis
Dependency resolution therefore depends on mutable package-index state at execution time. A future compromised, malicious, or unexpectedly incompatible release could be downloaded without any project change or additional review. Python packages may execute code during installation or import, so dependency compromise can extend beyond incorrect calendar behavior.
The audit did not find evidence that the currently published
requestsorpython-dateutilpackages are malicious. The vulnerability is the absence of controls that ensure future executions use the same reviewed artifacts.Attack Path
- An attacker compromises a dependency release channel or publishes a malicious release through an applicable supply-chain attack.
- The Skill is invoked using
uv run --managed-python scripts/taiwan_calendar.py. uvresolves the unconstrained dependency to the attacker-controlled release.- The package is downloaded and installed without a lockfile or hash verification rejecting it.
- Malicious package code executes during installation or when the script imports the package.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user or Agent process running the Skill. This may permit access to files, environment variables, network resources, and credentia ...[truncated 146 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to an exact, reviewed version.
- Generate and commit a
uvlockfile so installations are reproducible. - Require package hashes where the deployment process supports them.
- Use a trusted internal package mirror or an allowlisted package index.
- Add automated dependency vulnerability and provenance scanning.
- Review and deliberately update dependencies rather than allowing invocation-time upgrades.
