Back to skill

Security audit

reMarkable MCP

Security checks for vulnerabilities and agentic risk

Overview

The skill has a legitimate purpose, but it asks users to run an unpinned external server that can access private tablet documents and credentials, with limited privacy disclosure for cloud and OCR modes.

Review this skill before installing. Prefer USB mode when possible, avoid using cloud or OCR modes for sensitive notes unless you accept the third-party processing risk, and pin or verify the `remarkable-mcp` package before running it with tablet access or credentials.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:20
Finding
Unpinned Third-Party MCP Package Is Downloaded and Executed## Vulnerability Details **File Location**: `SKILL.md:20-26` **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```json { "mcpServers": { "remarkable": { "command": "uvx", "args": ["remarkable-mcp", "--usb"] } } } ``` The same unpinned `remarkable-mcp` package is also invoked by the SSH, cloud, and OCR configurations at `SKILL.md:34-40`, `SKILL.md:45-54`, and `SKILL.md:60-69`. ### Technical Analysis The configuration directs `uvx` to resolve and execute `remarkable-mcp` without 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 1. An attacker compromises the `remarkable-mcp` package, its publisher account, or the package distribution channel. 2. The attacker publishes a malicious version under the package name resolved by `uvx`. 3. A user starts the MCP server using the documented configuration. 4. `uvx` resolves and executes the uncontrolled package version. 5. 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]
Remediation
## Remediation Suggestions - Pin `remarkable-mcp` to 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.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill documents cloud access using a reMarkable token and OCR using a Google Vision API key, but it does not clearly warn that document contents may be transmitted to third-party services or remote infrastructure. In a note-taking context, users may expose sensitive handwritten notes, PDFs, annotations, or personal documents without understanding the privacy implications, which makes the omission security-relevant even if the feature itself is legitimate.

Static analysis

No suspicious patterns detected.