T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Selenium Dependency Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14-15
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code:
yaml install: | pip install seleniumTechnical 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
- An operator installs the skill's declared dependency by running
pip install selenium. pipresolves the mutable latest compatible release from the configured package index.- If that release or its distribution channel has been compromised, an attacker-controlled artifact is downloaded.
- Package installation or subsequent import executes the compromised code with the Python process's privileges.
- 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.
- An operator installs the skill's declared dependency by running
- Remediation
View 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.
