T08 · Insecure Dependencies
- Location
scripts/fal.py:2- Finding
Unpinned Runtime Dependencies Permit Unreviewed Supply-Chain Changes
- Content
View full analysis
=3.10" # dependencies = [ # "fal-client>=0.5.0", # ] # /// ``` The documentation also states: ```markdown `uv run` automatically creates an isolated virtual environment and installs the `fal-client` dependency on first run. ``` ### Technical Analysis The installation command retrieves the latest available `uv` package without an exact version or integrity hash. The PEP 723 metadata similarly specifies `fal-client>=0.5.0`, allowing any current or future package version satisfying that constraint. Consequently, the code reviewed in this audit does not fully determine the code that will execute at runtime. Package installation and module import may execute package-controlled code with the same permissions as the Agent. An upstream compromise, malicious release, dependency compromise, or unexpected incompatible update could therefore alter behavior after the Skill has been reviewed. No evidence was found that the currently named packages are intentionally malicious. The vulnerability is the absence of dependency immutability and integrity controls. ### Attack Path 1. An attacker compromises a permitted dependency release or one of its transitive dependencies. 2. The compromised release remains compatible with the unconstrained `uv` installation or the `fal-client>=0.5.0` requirement. 3. A user installs or invokes the Skill. 4. `pip` or `uv run` resolves and installs the compromised package version. 5. Package installation or import executes attacker-controlled code in the ...[truncated 712 chars]- Remediation
View remediation
=0.5.0` in runtime metadata. 6. Perform dependency updates through a controlled review process rather than resolving new versions automatically during Skill execution. 7. Run dependency installation and media processing in a sandbox with minimal filesystem and environment-variable access. 8. Add automated software-composition analysis and package-integrity checks to the release process. ]]>
