T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:53
- Finding
- Unpinned Third-Party CLI and Browser Extension Supply Chain<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:53-59` and `SKILL.md:85-90` **Vulnerability Type**: Unpinned third-party dependencies from mutable external sources **Risk Level**: Medium ### Vulnerable Code ```markdown ## Install the CLI ```bash python3 -m pip install --user pipx python3 -m pipx ensurepath pipx install browser-agent-bridge ``` ``` The browser extension is also obtained from a mutable repository without a pinned commit or integrity verification: ```markdown ## Connect the Chrome extension (tell your human to do this) 1. Open `chrome://extensions`. 2. Enable `Developer mode`. 3. Click `Load unpacked`. 4. Select the extension provided by this project from https://github.com/NmadeleiDev/browser_agent_bridge (`extension/` folder). ``` ### Technical Analysis The instructions install `browser-agent-bridge` without specifying an audited version, package hash, or signature. They also direct the user to load an unpacked Chrome extension from a GitHub repository without pinning a commit or verifying the downloaded files. Both external components therefore remain mutable after this skill has been reviewed. If the PyPI package, publisher account, GitHub repository, or distribution path is compromised, subsequently installed content can differ from the content originally assessed. This is especially sensitive because the installed components form a browser-control channel. According to the documented functionality, that channel can retrieve page HTML and DOM information and perform navigation, clicks, typing, scrolling, and key presses. The Python package is also executed under the installing user's local account. ### Attack Path 1. An attacker compromises the upstream PyPI publisher, GitHub repository, maintainer credentials, or release process. 2. The attacker publishes a modified package version or changes the extension source in the repository. 3. A user follows the documented unpinned installation instructions or runs `pipx up ...[truncated 1119 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `browser-agent-bridge` to a specifically reviewed version: ```bash pipx install 'browser-agent-bridge==<audited-version>' ``` 2. Publish and verify cryptographic hashes or signed release artifacts before installation. 3. Pin the extension to an audited Git commit or signed release archive rather than instructing users to load the repository's current state. 4. Document the expected extension file hashes and require verification before loading it into Chrome. 5. Review and document the extension manifest, host permissions, and content-script scope. Grant only the minimum permissions necessary. 6. Remove or restrict automatic upgrade guidance. Require security review before changing the pinned package or extension version. 7. Prefer a controlled internal artifact registry or trusted release mirror for privileged browser-control components. 8. Document a reproducible process for verifying that the Python package and browser extension correspond to the same audited release. ]]>
