T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:25
- Finding
- Unpinned Third-Party Python Packages Installed from the Default Package Index<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 25 **Vulnerability Type**: Supply-chain exposure through unpinned dependencies **Risk Level**: Medium ### Vulnerable Code ```bash pip3 install hobot-dnn-rdkx5 hobot-vio-rdkx5 ``` ### Technical Analysis The installation command does not specify exact package versions, cryptographic hashes, or an explicitly trusted vendor repository. As a result, installation behavior depends on the mutable state of the package index and its transitive dependencies at the time the command is executed. If a package publisher account, package release, transitive dependency, or configured package index is compromised, `pip` may retrieve and install attacker-controlled content. Python packages can execute build-related code during installation, while malicious installed modules can execute code when subsequently imported. ### Attack Path 1. An attacker compromises one of the named packages, a transitive dependency, or the package-index account used to publish it. 2. The attacker publishes a malicious release that remains compatible with the unpinned package requirement. 3. A user follows the documented `pip3 install` command. 4. `pip` resolves the malicious release from the default or locally configured package index. 5. Malicious code executes during package build or installation, or later when the package is imported by an inference script. ### Impact Assessment Successful exploitation can execute code with the privileges of the user running `pip3`. This may permit access to that user's files, credentials, ROS environment, connected devices, and network resources. If the command is run by a privileged account, the impact may extend to system-wide package modification and complete device compromise. The document does not instruct users to run the command with `sudo`, so elevated privileges are not assumed. ]]>
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin every direct dependency to a reviewed, known-good version. - Lock and review all transitive dependencies. - Require cryptographic hashes through a lock file or a requirements file used with `pip install --require-hashes`. - Use the hardware vendor's authenticated package repository rather than relying implicitly on the default index. - Install packages in an isolated virtual environment under an unprivileged account. - Retain reviewed package artifacts in a controlled internal repository for reproducible deployment. - Add package provenance, signature, or software-bill-of-materials verification where supported. For example, after validating the appropriate releases: ```bash python3 -m venv .venv . .venv/bin/activate pip install --require-hashes -r requirements.lock ``` ]]>
