T08 · Insecure Dependencies
- Location
SKILL.md:89- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 89–96
Vulnerability Type: Unpinned dependency installation
Risk Level: MediumVulnerable Code
markdown 3. Ask for approval before any install command. 4. If the user approves installation, run: ```bash pip install body-emotion-sensortext ### Technical Analysis The skill instructs the agent to install `body-emotion-sensor` from the default Python package index without an exact version constraint, integrity hashes, a lock file, or locally auditable package source. User approval makes the installation transparent but does not protect against a compromised future release, package-index account takeover, dependency compromise, or unexpected changes between installations. Because the installed package creates the `bes` command that the skill later invokes, package code executes with the operating-system permissions of the agent or user running `pip` and `bes`. ### Attack Path 1. An attacker compromises the package's publishing account, its release pipeline, or one of its transitive dependencies. 2. The attacker publishes a malicious release that still resolves under the unversioned package name. 3. A user approves the documented installation. 4. `pip install body-emotion-sensor` resolves and installs the malicious or compromised release. 5. Malicious behavior may execute during installation or when the agent subsequently invokes `bes`. 6. The skill calls the installed CLI during readiness checks, session bootstrap, and reply processing, providing repeated execution opportunities. ### Impact Assessment A compromised package can execute with the privileges of the account running the installation and CLI. Subject to those privileges, it could read or modify accessible files, tamper with the documented workspace state and history, alter CLI output used to shape agent replies, access environment data, or initiate network activity. The project contains no evidence that elevated privi ...[truncated 107 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact, reviewed release, for example
body-emotion-sensor==X.Y.Z. - Distribute a lock file or constraints file that also pins transitive dependencies.
- Require cryptographic hashes by installing from a reviewed requirements file with
pip install --require-hashes. - Document and enforce the canonical package index rather than relying implicitly on the environment's configured index.
- Make the reviewed package source available so its CLI and installation behavior can be audited.
- Install into a dedicated virtual environment with minimal filesystem and network privileges.
- Establish a controlled upgrade process that reviews and tests each new package version before updating the pin.
- Pin the dependency to an exact, reviewed release, for example
