T08 · Insecure Dependencies
- Location
SKILL.md:35- Finding
Unpinned Third-Party Desktop-Control Dependencies Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 35–38, 65–68, 73–74, and 84–86
Vulnerability Type: Unpinned and automatically executed third-party dependencies
Risk Level: MediumVulnerable Code Snippets
macOS package installation and permission grant, lines 35–38:
bash npx -y @steipete/peekaboo # 授权 peekaboo permissions grantLinux Python package installation and execution, lines 65–68:
bash # 安装 pip install mcp-desktop-control # 运行 mcp-desktop-controlLinux Node.js package installation and execution, lines 73–74:
bash # 安装运行 npx -y mcp-desktop-pro serveGit repository retrieval and direct execution, lines 84–86:
bash git clone https://github.com/bhyoo/kwin-mcp cd kwin-mcp python kwin-mcp.pyTechnical Analysis
The documented commands download and execute third-party packages or repository content without pinning an exact package version or Git commit. The
npx -yoption also suppresses installation confirmation and immediately executes the package selected by the registry. The pip installation accepts the repository's current unconstrained release, while the Git workflow executes code from the current default branch.Consequently, the code that ultimately runs can change after this Skill has been reviewed. Compromise of an upstream maintainer account, package registry, release process, dependency chain, or Git repository could cause users to retrieve and execute attacker-controlled code.
The affected components provide desktop-automation functions such as screen capture, mouse control, keyboard input, and application interaction. The macOS workflow additionally directs the user to grant accessibility permissions. This makes supply-chain compromise particularly sensitive because a malicious dependency may inherit both the invoking user's privileges and security-relevant desktop-control access.
There is no evidence that the named packages or repository are currently malicious. The finding ...[truncated 1548 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every package to an exact, reviewed version:
- Use
@steipete/peekaboo@X.Y.Z. - Use
mcp-desktop-pro@X.Y.Z. - Use
mcp-desktop-control==X.Y.Z.
- Use
- Pin Git-hosted code to a reviewed commit hash rather than executing the current default branch.
- Verify downloaded artifacts using trusted checksums, lockfiles, provenance attestations, or cryptographic signatures.
- Avoid
npx -yfor security-sensitive desktop-control tools. Separate package retrieval, integrity verification, and execution into explicit steps. - Document the authoritative registry namespace and repository for each dependency to reduce dependency-confusion and typosquatting risk.
- Review direct and transitive dependencies before deployment and use automated dependency and provenance scanning.
- Grant accessibility, screen-recording, and input-control permissions only after verifying the installed artifact.
- Run desktop-control components under a dedicated least-privileged account or sandbox where practical.
- Revoke desktop-control permissions when the functionality is no longer required.
- Pin every package to an exact, reviewed version:
