T08 · Insecure Dependencies
- Location
SKILL.md:50- Finding
Unpinned Third-Party npm Package Is Downloaded and Executed Automatically
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This browser-control skill is coherent, but it asks users to install a persistent unpinned MCP bridge with broad access to browser tabs, screenshots, form fields, downloads, and full editor contents.
Install only if you trust the AIPex extension and npm bridge publisher, and prefer pinning a reviewed bridge version instead of using unpinned `npx -y`. Avoid using this skill on sensitive tabs unless needed, confirm before screenshots are sent to an LLM, and do not let it read editors, enter passwords, or save downloads without explicit intent.
SKILL.md:50Unpinned Third-Party npm Package Is Downloaded and Executed Automatically
The skill declares use of npx to fetch and execute an MCP bridge package without pinning a specific version, which creates a supply-chain risk. A future malicious or compromised package release could be pulled automatically and executed locally with the user's privileges when the skill is set up.
The setup instruction explicitly tells users to run npx -y aipex-mcp-bridge, which downloads and executes the latest published package version at runtime. This is dangerous because any compromise of the npm package, publisher account, or dependency chain could lead to arbitrary code execution on the local machine.
The skill instructs use of capture_screenshot(sendToLLM=true) but does not clearly warn that page screenshots may be transmitted to the LLM, potentially exposing sensitive on-screen information. In a browser automation context, screenshots can easily contain credentials, personal data, session details, or proprietary content, making the omission materially risky.
The skill exposes browser-wide enumeration and screenshot capabilities that can access titles, URLs, and visible contents of all open tabs, which may include sensitive personal, corporate, or authentication-related data. In an agent skill context, documenting and normalizing these capabilities without clear privacy boundaries, consent requirements, or data-minimization guidance increases the risk of over-collection and unintended exfiltration.
The form-filling examples include email and password-style values, which can normalize handling of credentials without any caution about secrets management, masking, or user consent. In a browser automation skill, this makes it easier for an agent to solicit, store, or replay sensitive authentication data in unsafe ways.
get_editor_value is documented to return full editor contents without truncation, which can expose large amounts of sensitive source code, secrets, proprietary text, or embedded credentials from an active browser session. In an MCP/browser-agent setting, unrestricted full-content reads create a direct data-exfiltration channel and can also increase blast radius by bypassing minimization controls.
### `get_editor_value`
Read the full text content of a code editor (Monaco, CodeMirror, ACE) or textarea without truncation. Call before overwriting to avoid data loss.
| Parameter | Type | Required | Description |
|---|---|---|---|
The skill advertises downloading content and saving data locally but does not warn users that these actions can write files to disk or alter local user data. In a browser-control skill, this can lead to unanticipated persistence of sensitive content, clutter, or overwriting/retention risks, especially when handling extracted web data.