Back to skill

Security audit

Karakeep

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Karakeep connector, but its setup tells users to run remote installer scripts directly in a shell while the connector can perform broad write, delete, and admin actions.

Install only if you trust OOMOL and your Karakeep connection scope. Prefer downloading and verifying the oo CLI installer before running it, and use a least-privileged Karakeep API key where possible. Review every write, destructive, backup-download, signed-URL, and admin action before approving it.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
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
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · SKILL.md (reported line 93)May include surrounding context.

md
- `update_feed` — Update an RSS feed subscription. Only the fields present in the input are changed; every omitted field keeps its current value. [destructive]
- `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

External Script Fetching

High
Category
Supply Chain
Confidence
94% confidence
Finding

The skill instructs users to install software by piping a remotely fetched script directly into bash. This creates a supply-chain and arbitrary code execution risk: if the install endpoint, transport path, or hosting account is compromised, users may execute attacker-controlled code immediately. Because this appears in a 'first-time setup' section of an operational skill, the context makes it more dangerous by normalizing unsafe installation behavior.

Content

Scanner excerpt · SKILL.md (reported line 109)May include surrounding context.

Static analysis

No suspicious patterns detected.