Back to skill

Security audit

KameleonDB

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent database skill, but it needs review because it encourages broad autonomous persistent storage and schema changes, including personal data, without clear guardrails.

Install only if you deliberately want an agent to manage durable structured data. Use a dedicated development or least-privilege database first, avoid storing secrets or regulated personal data by default, require explicit approval before ingesting customer/contact data or changing schemas, and pin or otherwise verify the kameleondb package before installation.

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:39
Finding

Unpinned Third-Party Package Installation Creates a Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Locations:

  • SKILL.md:39
  • SKILL.md:49
  • SKILL.md:300
  • README.md:16

Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable Code

SKILL.md:39:

bash
# Install
pip install kameleondb

SKILL.md:49:

text
**Note**: For production, use PostgreSQL instead of SQLite. Set `KAMELEONDB_URL="postgresql://user:pass@localhost/dbname"` and run `pip install kameleondb[postgresql]`.

SKILL.md:300:

bash
# Install
pip install kameleondb

README.md:16:

bash
pip install kameleondb[postgresql]

Technical Analysis

The installation instructions retrieve kameleondb and its transitive dependencies without specifying an exact audited version, lockfile, package hashes, or an explicitly trusted package index. Consequently, the code installed by these commands is mutable and may differ from the dependency version that existed when this skill was reviewed.

The artifact only contains documentation and examples; it does not include the KameleonDB implementation or dependency metadata needed to audit the installed executable. A malicious or compromised package release, transitive dependency, package index, or build artifact could therefore introduce code that is not visible in this project.

Depending on the artifact selected by pip, hostile code could execute through a source distribution's build backend during installation or when the installed kameleondb command is subsequently invoked.

Attack Path

  1. An attacker compromises the kameleondb publication account, one of its transitive dependencies, or the package distribution channel.
  2. The attacker publishes a malicious release under the expected package name or causes dependency resolution to select a compromised component.
  3. A user or agent follows the documented command:
    bash
    pip install kameleondb
    

...[truncated 1262 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin KameleonDB to an exact version that has been independently reviewed:

    bash
    python -m pip install "kameleondb==0.1.5"
    

    Apply equivalent exact pins when extras are required:

    bash
    python -m pip install "kameleondb[postgresql]==0.1.5"
    
  2. Generate a reviewed lockfile that pins every transitive dependency, rather than pinning only the top-level package.

  3. Require cryptographic hashes for all resolved distributions:

    bash
    python -m pip install --require-hashes -r requirements.txt
    
  4. Document and enforce the trusted package index explicitly. In controlled deployments, use an internal package mirror containing only reviewed artifacts.

  5. Prefer pre-reviewed wheels and disable unexpected source builds where deployment compatibility permits:

    bash
    python -m pip install --only-binary=:all: --require-hashes -r requirements.txt
    
  6. Verify release provenance, signatures, maintainership, and package hashes before updating the pinned version.

  7. Run installation and the database CLI as an unprivileged account in an isolated virtual environment or container. Restrict filesystem and network access to the minimum needed.

  8. Provide database credentials through a secret manager rather than recording credential-bearing PostgreSQL URLs in documentation, logs, or agent memory.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README instructs users/agents to initialize a database, create schemas, and insert persistent records without any warning that these commands mutate durable state. In an agent context, examples are often executed or adapted directly, so the lack of guardrails increases the chance of unintended database creation, schema drift, or persistent data writes in the wrong environment.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description is extremely broad and overlaps with many routine assistant activities such as remembering information, tracking tasks, ingesting external data, and maintaining persistent state. In an agent environment, this can cause over-activation and unnecessary routing of general user workflows into a persistence-capable tool, increasing the chance that sensitive or unnecessary data is stored without deliberate user intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly encourages storing contacts, companies, notes, API responses, scraped data, preferences, and session state across conversations, but it does not provide any prominent warning about retention, sensitivity, consent, or minimization. In practice, this creates a meaningful risk of collecting and persisting personal, confidential, or regulated data beyond what the user expects, especially because the tool is framed as agent memory.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The examples demonstrate destructive schema operations such as dropping fields with --force, but they do not warn that these actions may remove access to data, alter downstream behavior, or be difficult to reverse safely. In a skill meant for autonomous or semi-autonomous agents, showcasing destructive commands without caution increases the risk of accidental data loss or corruption during normal use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The workflow explicitly demonstrates autonomous ingestion, storage, schema evolution, querying, and optimization of customer data without any privacy, consent, data-minimization, or approval guardrails. In the context of a persistence/database skill, this is risky because it normalizes agents making independent decisions about collecting and retaining personally identifiable information such as names, emails, phone numbers, and LinkedIn profiles.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.