T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Third-Party MCP Package Is Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-26
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code
json { "mcpServers": { "remarkable": { "command": "uvx", "args": ["remarkable-mcp", "--usb"] } } }The same unpinned
remarkable-mcppackage is also invoked by the SSH, cloud, and OCR configurations atSKILL.md:34-40,SKILL.md:45-54, andSKILL.md:60-69.Technical Analysis
The configuration directs
uvxto resolve and executeremarkable-mcpwithout specifying a reviewed package version, cryptographic hash, signature, or verified source. Consequently, the code ultimately executed may change after this Skill has been reviewed.The dependency is security-sensitive because its intended role gives it access to private tablet documents. Depending on the selected configuration, it may also receive SSH access, a reMarkable cloud token, or a Google Vision API key. The project contains no implementation of
remarkable-mcp, so the external package's behavior could not be audited from the supplied artifact.This is a supply-chain exposure rather than evidence that the current package is malicious.
Attack Path
- An attacker compromises the
remarkable-mcppackage, its publisher account, or the package distribution channel. - The attacker publishes a malicious version under the package name resolved by
uvx. - A user starts the MCP server using the documented configuration.
uvxresolves and executes the uncontrolled package version.- The malicious package runs with the permissions of the MCP process and can attempt to access tablet content, process-visible credentials, available network resources, and any other resources exposed to that process.
Impact Assessment
Successful exploitation could expose private documents and credentials supplied to the MCP server, including a reMarkab ...[truncated 482 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
remarkable-mcpto a specifically reviewed version rather than resolving the latest available release. - Use a trusted package registry and explicitly document the package's official publisher and source repository.
- Enforce integrity verification through hashes, signed artifacts, or a locked dependency manifest where supported.
- Review each dependency update before changing the pinned version.
- Run the MCP server in a sandbox with minimal filesystem, network, USB-device, and process access.
- Supply only the credentials required for the selected mode, scope them narrowly, and rotate them if package compromise is suspected.
- Avoid exposing unrelated environment variables or host credentials to the MCP process.
- Apply equivalent pinning and isolation to the USB, SSH, cloud, and OCR configurations.
- Pin
