T08 · Insecure Dependencies
- Location
runtime/hkipo-next/pyproject.toml:11- Finding
Unbounded Runtime Dependencies Without a Bundled Lockfile
- Content
View full analysis
=4.14.3", "httpx>=0.28.1", "lxml>=6.0.4", "opencc-python-reimplemented>=0.1.7", "pydantic>=2.13.0", "requests>=2.33.1", ] ``` The documented execution workflow in `SKILL.md:20` uses: ```bash uv run --directory runtime/hkipo-next hkipo-next ... ``` ### Technical Analysis All runtime dependencies specify only minimum versions. No reviewed lockfile is included in the audited project. Consequently, `uv run` can resolve versions that were published after this Skill was reviewed. This does not establish that any current dependency is malicious. However, it creates a supply-chain vulnerability because the code ultimately installed and imported at runtime is not restricted to the versions represented by the audited package. A compromised dependency release, compromised package-publisher account, malicious transitive dependency, or unexpectedly incompatible future release could become part of the effective runtime without any modification to the Skill itself. Python packages execute code with the invoking user's privileges when their modules are imported. Depending on build and installation behavior, package-controlled code may also execute during package construction or installation. ### Attack Path 1. An attacker compromises the publishing account or release infrastructure of a declared dependency or one of its transitive dependencies. 2. The attacker publishes a new version satisfying the applicable open-ended `>=` constraint. 3. A user follows the documented `uv run` workflow in an environment without a previously verified and immutable dependency resolution. 4. The resolver selects and installs the newly published version. 5. The compromised package executes when installed or importe ...[truncated 1084 chars]- Remediation
View remediation
