T08 · Insecure Dependencies
- Location
scripts/plan_event.py:3- Finding
Unpinned Runtime Dependency Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
scripts/plan_event.py:3-7
Vulnerability Type: Unpinned third-party runtime dependency
Risk Level: Mediumpython # /// script # requires-python = ">=3.10" # dependencies = [ # "requests>=2.31.0", # ] # ///Technical Analysis
The script declares
requests>=2.31.0using an open-ended version constraint. The documented invocation throughuv runcan resolve and install any future package version satisfying that constraint. No committed lockfile, exact version pin, or package hash is present in the audited project.Although
requestsis a legitimate package and no malicious dependency was observed in the audited source, the reviewed code does not uniquely determine which dependency version will execute. A compromised, malicious, or unexpectedly incompatible future release could therefore enter the runtime dependency chain without a corresponding change to this repository.Attack Path
- An attacker compromises the upstream package, its maintainer account, or a relevant distribution channel and publishes a malicious version satisfying
>=2.31.0. - A user invokes the documented
uv run .../scripts/plan_event.pycommand in an environment where dependency resolution selects that version. uvdownloads and installs the selected package.- The script imports
requests, causing dependency-controlled Python code to execute. - The malicious code operates with the same OS permissions and environment access as the invoking process.
Impact Assessment
Successful exploitation could permit arbitrary code execution with the privileges of the user or Agent running the Skill. This may expose environment variables—including
GOOGLE_PLACES_API_KEY—and any files, network resources, or process capabilities available to that account. The code does not itself request elevated system privileges, so the direct scope is limited to the invoking process's ...[truncated 22 chars]- An attacker compromises the upstream package, its maintainer account, or a relevant distribution channel and publishes a malicious version satisfying
- Remediation
View remediation
Remediation Suggestions
- Replace the open-ended constraint with an exact, audited version.
- Commit and enforce a lockfile so installations resolve to reviewed artifacts.
- Verify dependency artifacts with cryptographic hashes where supported.
- Use a controlled package index or registry mirror with provenance and integrity checks.
- Configure automated dependency monitoring, but require review and testing before updating the lockfile.
- Run the Skill with least privilege and expose only the environment variables and filesystem paths required for event planning.
