Back to skill

Security audit

Nlm Cli

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent NotebookLM automation purpose, but it should be reviewed because it documents public sharing, account/profile use, AI-tool configuration changes, and an unpinned third-party CLI install with limited safeguards.

Install only if you trust the notebooklm-mcp-cli package source and are comfortable granting it access to your NotebookLM/Google session. Before using share, delete, setup, or skill install commands, confirm the target notebook, account profile, recipients, public/private status, and whether the change can be reversed.

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
references/install-and-auth.md:7
Finding

Unpinned Third-Party Package Installation

Content
View full analysis

Vulnerability Details

File Location: references/install-and-auth.md:7-17
Vulnerability Type: Unpinned dependency installation from a mutable third-party package registry
Risk Level: Medium

Vulnerable Code:

bash
Recommended method:

```bash
uv tool install notebooklm-mcp-cli

Alternative method:

bash
pip install notebooklm-mcp-cli
text

### Technical Analysis

The installation instructions retrieve `notebooklm-mcp-cli` without specifying an exact version, validating a cryptographic hash, or using a reviewed lockfile. Consequently, the installed code depends on whichever package release the registry resolves at installation time.

This creates a supply-chain risk because a compromised package publisher account, package registry, or malicious future release could cause users to install and execute unreviewed code. The project also does not document package integrity verification or bind installation to a specific reviewed artifact.

### Attack Path

1. An attacker compromises the package publisher account, registry distribution path, or a future release of `notebooklm-mcp-cli`.
2. The attacker publishes a malicious package version under the expected package name.
3. A user follows the documented `uv tool install` or `pip install` command.
4. The package manager resolves and installs the mutable malicious release because no version or hash is pinned.
5. Malicious installation behavior or subsequent execution of `nlm` runs with the privileges of the installing user.
6. The malicious code may access data and credentials available to that user, including NotebookLM or Google authentication state exposed to the CLI.

### Impact Assessment

Successful exploitation could permit arbitrary code execution with the installing user's privileges. The accessible scope may include the user's files, environment variables, CLI configuration, authentication profiles, and NotebookLM-related data a
...[truncated 261 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin notebooklm-mcp-cli to a specifically reviewed version in every installation command.
  2. Distribute a lockfile or requirements file containing cryptographic hashes and require hash verification during installation.
  3. Document the canonical package repository, expected publisher, source repository, and release-signing or provenance information.
  4. Prefer installation in an isolated, least-privileged virtual environment rather than a global or privileged Python environment.
  5. Establish a controlled dependency-update process that reviews source changes and verifies package provenance before updating the pinned version.
  6. Where supported, verify signed release artifacts or trusted package provenance attestations before installation.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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
Findings (6)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The example commands hardcode the prompt phrase "请用中文回答" for NotebookLM queries, which directs the skill toward a specific language choice. The file does not present this as optional or user-selected, so it can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The natural-language examples explicitly say 请用中文回答 and present Chinese as the expected response language, but the file does not offer user opt-in or an alternative language choice. SQP-3 applies to language or locale policy violations when a specific language is forced without user choice or documented justification.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents share public, share private, and share invite commands with no surrounding warning about access-control consequences. In an automation-focused skill, this omission can lead users or downstream agents to expose notebooks or grant unintended access without realizing the privacy impact, especially when commands are copied verbatim into workflows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

该参考文件的标题与正文说明均以中文编写,未见提供语言/locale 选择、双语说明,或声明该技能仅面向特定中文环境用户。按照语言/locale 政策,这属于默认强制特定语言而缺少用户选择的自然语言策略问题。

Content

No source excerpt is available for this finding.

Rp1

Low
Category
MCP Rug Pull
Confidence
60% confidence
Finding

pip install without ==version installs the latest release, which could include malicious changes.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/nlm.mjs:40