T08 · Insecure Dependencies
- Location
pyproject.toml:18- Finding
Unbounded Third-Party Dependencies and Unverified Package Execution
- Content
View full analysis
=1.0", "cervellaswarm-lingua-universale>=0.3.3", ] ``` The documented installation instructions execute packages resolved from an external package registry: ```bash # Run as MCP server (uvx, no install needed) uvx openclaw-skill-lingua-universale # Or install and run pip install openclaw-skill-lingua-universale lu-mcp ``` ```bash # As a Claude Code MCP server uvx openclaw-skill-lingua-universale # Or install directly pip install openclaw-skill-lingua-universale lu-mcp # starts stdio MCP server ``` ### Technical Analysis Both runtime dependencies are specified with minimum versions and no upper bounds. The audited project also contains no dependency lockfile or package hashes. Consequently, `pip` or `uvx` may install future versions that were not included in this audit. Python modules can execute code during import, and this server imports both `mcp.server.fastmcp` and `cervellaswarm_lingua_universale` during normal operation. A compromised or malicious future release satisfying these broad version constraints could therefore execute code under the identity of the user running the MCP server. The reviewed source does not itself download or execute a remote payload at runtime, and no currently malicious dependency was established. The issue is the lack of reproducible and integrity-verified dependency resolution, which increases supply-chain risk. ### Attack Path 1. An attacker compromises the publishing account or release infrastructure of an accepted dependency, or otherwise causes a malicious version to be served by the configured package index. 2. The malicious release uses a version satisfying `mcp>=1.0` or `cervellaswarm-lingua-univers ...[truncated 1125 chars]- Remediation
View remediation
", "cervellaswarm-lingua-universale==", ] ``` 2. Generate and publish a lockfile containing all transitive dependencies so deployments resolve a reproducible dependency graph. 3. Use hash verification for deployment artifacts, such as a requirements file generated with hashes and installed using: ```bash pip install --require-hashes -r requirements.lock ``` 4. Configure installation workflows to use an explicitly trusted package index and prevent unintended fallback to untrusted indexes. 5. Add automated dependency scanning, provenance verification, and release review before updating pinned versions. 6. Consider publishing signed artifacts and documenting signature or checksum verification for users running the package through `uvx`. 7. Run the MCP server in a least-privilege environment with restricted filesystem, credential, and network access to limit the impact of a future dependency compromise. ]]>
