Back to skill

Security audit

Karakeep

Security checks for vulnerabilities and agentic risk

Overview

This Karakeep connector is mostly coherent, but it needs review because its setup instructions execute remote installer scripts directly.

Install only if you trust OOMOL and the connected Karakeep account permissions. Prefer manually reviewing or using a verified oo CLI installation method before enabling the skill, and require clear confirmation before any write, destructive, admin, backup download, asset upload, or signed URL action.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Memory Manipulation

High
Category
Memory Poisoning
Content
- `update_feed` — Update an RSS feed subscription. Only the fields present in the input are changed; every omitted field keeps its current value. [write]
- `update_highlight` — Partially update a Karakeep highlight. Only the color and the note can be changed, and sending null for the note clears it. [write]
- `update_list` — Partially update a Karakeep list. Only the fields present in the input are changed, and sending null for description or parentId clears the stored value. [write]
- `update_tag` — Rename a Karakeep tag. The name is the only field this endpoint can change, so it is required. The new name is trimmed and normalized, and every bookmark carrying the tag sees the new name. [write]
- `upload_asset` — Upload a file to Karakeep as a new standalone asset. The connector downloads fileUrl server side and posts the bytes as multipart/form-data under the form field file. Karakeep accepts only image/gif, image/jpeg, image/png, image/webp, video/mp4, video/webm, video/x-matroska, text/html and application/pdf. It sniffs binary types from the bytes themselves and ignores the declared type for them, but HTML carries no signature, so an HTML upload is accepted only when the declared content type is exactly text/html. Anything above the instance asset size limit is rejected with an Asset is too big error; that limit is MAX_ASSET_SIZE_MB multiplied by 1024 * 1024, so it is 50 MiB by default. The asset is created detached from any bookmark, so follow up with attach_asset_to_bookmark when it belongs to one. [write]

## Safety
Confidence
80% confidence
Finding
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

External Script Fetching

High
Category
Supply Chain
Content
- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):

  ```bash
  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux
  ```

  ```powershell
Confidence
96% confidence
Finding
The skill instructs the agent to install software by piping a remotely fetched script directly into bash, which executes unverified code from the network without integrity checking, version pinning, or user review. In an agent context, this is especially dangerous because an attacker who controls or intercepts the install endpoint could gain arbitrary code execution on the host running the skill.

Static analysis

No suspicious patterns detected.