T08 · Insecure Dependencies
Error
- Location
- SKILL.md:76
- Finding
- Unpinned dependencies installed into the system Python environment<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:76-85`; duplicated in `setup_guide.md:8-16` and `setup_guide.md:71-76` **Vulnerability Type**: Unsafe dependency installation and excessive installation privileges **Risk Level**: High ### Complete Code Snippet ```bash # Inside the container (agent runs this directly) pip install elevenlabs --break-system-packages pip install twilio --break-system-packages apt-get update && apt-get install -y ffmpeg # Verify ffmpeg -version | head -1 python3 -c "from elevenlabs.client import ElevenLabs; print('✅ SDK ready')" ``` The host-oriented setup guide additionally instructs users to connect as root and run equivalent commands inside the container: ```bash # From your VPS host via SSH ssh root@your-vps-ip # Execute a command inside the container docker exec openclaw-yyvg-openclaw-1 pip install elevenlabs --break-system-packages docker exec openclaw-yyvg-openclaw-1 pip install twilio --break-system-packages docker exec openclaw-yyvg-openclaw-1 apt-get update docker exec openclaw-yyvg-openclaw-1 apt-get install -y ffmpeg ``` ### Technical Analysis The Skill installs the latest available versions of `elevenlabs` and `twilio` without exact version constraints, integrity hashes, or a lock file. The `--break-system-packages` option deliberately bypasses the operating system’s externally managed Python protection and modifies the container-wide Python environment. Installing packages from a public package repository necessarily executes package installation logic and subsequently imports package code. Without pinned versions and hashes, the effective code installed during setup can differ from the version reviewed with the Skill. A compromised upstream release, maintainer account, package repository, or dependency in the transitive dependency tree could introduce arbitrary code into the container. System-level installation also exceeds the minimum privilege needed for a Python CLI. A dedicated virtual envir ...[truncated 1271 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every direct dependency to an audited exact version, for example through a version-controlled lock file. 2. Require package hashes with `pip install --require-hashes`. 3. Lock and audit transitive dependencies, not only `elevenlabs` and `twilio`. 4. Install packages in a dedicated virtual environment rather than using `--break-system-packages`. 5. Prefer a reproducible container image that installs dependencies during a controlled build. 6. Run installation and application execution as a non-root user wherever possible. 7. Separate optional Twilio dependencies from the TTS-only installation path. 8. Add automated dependency vulnerability and provenance scanning to the release process. ]]>
