Back to skill

Security audit

the-librarian

Security checks across malware telemetry and agentic risk

Overview

This skill appears to be a real knowledge-search tool, but it exposes highly privileged database access and sensitive WhatsApp knowledge workflows that require careful review before installation.

Review this skill before installing it. It is not clearly malicious, but it is designed around sensitive private knowledge stores and privileged Supabase access. Only use it in an environment where the Supabase service-role key, WhatsApp conversation data, index files, and embedding endpoint are intentionally available to the agent, and avoid remote embedding APIs unless you are comfortable sending document text and queries there.

SkillSpector

By NVIDIA
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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (11)

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill documents file access, local secret-file reads, network calls, and index creation, but the manifest does not declare any permissions. That undermines least-privilege enforcement and user visibility, especially because the skill handles sensitive conversations, documents, and credentials.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding
The documented behavior materially exceeds or diverges from the declared purpose: it references Supabase administration, secret retrieval, conversation ingestion, remote embedding transmission, and reranking behavior that are not cleanly reflected in the description. Description-behavior mismatch prevents informed consent and can conceal privacy-relevant data flows or privileged operations.

Context-Inappropriate Capability

Medium
Confidence
98% confidence
Finding
The skill documentation exposes how to retrieve a Supabase service-role key from a local .env path and use it in API requests. Service-role credentials are highly privileged; operationalizing their extraction in a skill greatly increases the chance of credential misuse, broad data access, and destructive actions against the database.

Context-Inappropriate Capability

Medium
Confidence
87% confidence
Finding
The weekly WhatsApp review and purge workflow adds a data-governance and deletion capability outside the core build/search scope. Because it can trigger message-based retention decisions and sends summaries to a phone number, it expands the privacy and integrity risk surface beyond what a user would expect from a search skill.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The manifest presents the skill as a build/search utility, but the documentation also describes ongoing ingestion of WhatsApp conversations into the knowledge base. Continuous ingestion of sensitive communications is a materially different behavior with higher privacy impact than ad hoc search alone.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
The skill markets TurboVec as offline/no-cloud, yet elsewhere states that document text and queries are sent over HTTP to an embedding API. Even if intended for local Ollama, this is still network transmission and may be remote if misconfigured, making the offline/privacy claim misleading and potentially exposing sensitive content.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The script sends raw document chunk text to an embedding API via HTTP requests, so sensitive local knowledge-base contents may leave the host during indexing. Although the code warns when the endpoint is non-local, it does not enforce localhost-only operation, require TLS, or require explicit opt-in before transmitting document contents.

Vague Triggers

Medium
Confidence
83% confidence
Finding
Broad trigger phrases like 'remember this' or 'what do we know about' are likely to occur in normal conversation and can unintentionally activate the skill. In this context, accidental activation is more dangerous because the skill touches conversation archives, contacts, and knowledge stores containing sensitive personal/business data.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The description advertises searching conversations, knowledge entries, and contacts without an upfront privacy warning. Because these are sensitive personal or business datasets and may also be transmitted to an embedding service, the lack of immediate disclosure prevents informed consent and increases the chance of unsafe use.

External Transmission

Medium
Category
Data Exfiltration
Content
def get_embedding(text: str, model: str, api_url: str) -> list[float]:
    """Get embedding from Ollama API."""
    response = requests.post(
        f"{api_url}/api/embeddings",
        json={"model": model, "prompt": text},
        timeout=120
Confidence
96% confidence
Finding
requests.post( f"{api_url}/api/embeddings", json=

External Transmission

Medium
Category
Data Exfiltration
Content
def get_embedding(text: str, model: str, api_url: str) -> list[float]:
    """Get embedding from Ollama API."""
    response = requests.post(
        f"{api_url}/api/embeddings",
        json={"model": model, "prompt": text},
        timeout=60
Confidence
95% confidence
Finding
requests.post( f"{api_url}/api/embeddings", json=

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.