T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:14
- Finding
- Unpinned Selenium Dependency Creates Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 14-15 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium **Vulnerable Code:** ```yaml install: | pip install selenium ``` ### Technical Analysis The installation command does not constrain Selenium to a reviewed version and does not verify the downloaded artifact with a cryptographic hash. Consequently, installations performed at different times can resolve to different package versions. Because Python packages can run installation or imported runtime code with the privileges of the installing process, a compromised upstream release, package-index account, or distribution path could introduce attacker-controlled behavior. This finding does not establish that the legitimate Selenium package is malicious; it identifies the absence of dependency integrity and reproducibility controls. ### Attack Path 1. An operator installs the skill's declared dependency by running `pip install selenium`. 2. `pip` resolves the mutable latest compatible release from the configured package index. 3. If that release or its distribution channel has been compromised, an attacker-controlled artifact is downloaded. 4. Package installation or subsequent import executes the compromised code with the Python process's privileges. 5. The code can access resources available to that process, including automation inputs, browser data, files, and network connectivity. ### Impact Assessment Successful exploitation could provide code execution with the privileges of the account or environment performing installation or running the automation. The accessible scope would depend on that environment and could include project files, environment variables, browser session data, and reachable network services. System-level privileges are not inherently obtained unless installation or execution occurs as a privileged user.
- Remediation
- ## Remediation Suggestions - Pin Selenium to an exact, reviewed version, for example through a locked dependency file. - Require cryptographic hashes using a command such as `pip install --require-hashes -r requirements.txt`. - Generate and review a lock file that includes all transitive dependencies. - Install only from an explicitly trusted package index over authenticated TLS. - Perform dependency installation and browser automation as a non-root user in an isolated environment. - Add automated dependency vulnerability and provenance checks before updating the pinned version.
