Back to skill

Security audit

notebooklm-lore

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent NotebookLM/Lore setup wrapper, but it asks users to run mutable third-party code without pinning versions or hashes.

Install only if you trust the Lore repository and notebooklm-skill package source. Prefer pinning a reviewed commit and package version, using an isolated virtual environment, and limiting the MCP process's access to unrelated files, browser profiles, environment variables, and private NotebookLM materials.

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

Error
Location
SKILL.md:16
Finding
Unpinned Third-Party Code Installation and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 16–21 and 39–55 **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: High ### Vulnerable Code ```markdown ### 1) Install Lore locally - Clone or update the repo. - Install dependencies: ```bash pip install -e . python3 -m playwright install chromium ``` ``` ```markdown ### 4) MCP setup Use the repo’s `.mcp.json` (preferred) or add an equivalent MCP server entry: ```json { "mcpServers": { "lore": { "command": "uvx", "args": ["--from", "notebooklm-skill", "notebooklm-mcp"], "env": { "NOTEBOOKLM_DEFAULT_LANGUAGE": "en", "NOTEBOOKLM_DEFAULT_FORMAT": "json", "NOTEBOOKLM_POWERED_MODE": "1" } } } } ``` ``` ### Technical Analysis The skill directs an agent to clone or update a mutable Git repository and install it using `pip install -e .` without requiring a reviewed commit, immutable tag, lockfile, or verified integrity hash. Updating the repository can therefore change the code that is subsequently installed and executed after this skill has been reviewed. The MCP configuration also invokes `uvx` with the unpinned package name `notebooklm-skill`. Package resolution can retrieve and execute whichever compatible release is current at invocation time. The configuration does not enforce an exact version, distribution hash, trusted artifact provenance, or local review. Although retrieving dependencies is consistent with the skill's declared installation purpose, the lack of immutable dependency controls creates a supply-chain execution boundary. A compromised upstream repository, maintainer account, package registry account, or newly published malicious release could introduce code that executes with the privileges of the user or agent running the installation and MCP server. ### Attack Path 1. An attacker compromises the referenced ...[truncated 1710 chars]
Remediation
## Remediation Suggestions 1. Pin the Lore Git dependency to a reviewed, immutable commit SHA rather than instructing agents to update and execute the current branch. 2. Pin `notebooklm-skill` to an exact reviewed version in the `uvx` arguments, for example by using an explicit package version supported by the tool. 3. Verify downloaded distributions with approved cryptographic hashes and maintain a reviewed lockfile or constraints file for transitive Python dependencies. 4. Separate dependency updates from routine execution. Require review and security testing before changing the pinned commit, package version, or lockfile. 5. Obtain dependencies only from explicitly trusted repositories and registries. Enable available provenance or signature verification controls. 6. Run installation and the MCP server in an isolated virtual environment or sandbox with least-privilege filesystem and network access. 7. Deny the MCP process access to `~/.notebooklm/`, browser profiles, unrelated private source materials, and unnecessary environment variables unless access is essential to the requested operation. 8. Document the expected repository URL, commit identifier, package version, hashes, and verification procedure directly in the skill so an agent cannot silently resolve mutable upstream content.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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)

Natural-Language Policy Violations

Low
Confidence
96% confidence
Finding
The MCP configuration sets `NOTEBOOKLM_DEFAULT_LANGUAGE` to `en`, which imposes a language default in natural-language behavior. The file does not indicate that users can choose another language or that English is required for a documented, justified regional reason.

Static analysis

No suspicious patterns detected.