T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:61- Finding
Autonomous Upload of Local and Google Drive Documents Without Explicit User Confirmation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 61–69; supporting command examples at lines 89–92 and 127–130
Vulnerability Type: External disclosure of user-selected files without per-upload consent
Risk Level: HighVulnerable Code Snippet
markdown **Run without confirmation:** - `notebooklm status`, `list`, `doctor` — read-only - `notebooklm auth check` — diagnostics - `notebooklm create` — create notebook - `notebooklm use <id>` — set context (⚠️ single-agent only; use `-n` in parallel) - `notebooklm source add` — add sources - `notebooklm ask "..."` — chat (without `--save-as-note`) - `notebooklm language list/get/set` — language settings - `notebooklm profile list/create/switch` — profile managementThe documented source commands include local files and Google Drive content:
bash notebooklm source add "https://example.com/article" notebooklm source add ./report.pdf notebooklm source add "https://www.youtube.com/watch?v=VIDEO_ID" notebooklm source add-drive <drive_file_id> "Doc Title"Technical Analysis
The autonomy policy explicitly permits
notebooklm source addto run without confirmation. The same documentation establishes that source addition supports local files, Google Drive documents, PDFs, audio, video, images, and other potentially sensitive content.Adding these sources is not a local read-only operation. It transmits document content to Google NotebookLM through an unofficial client that uses undocumented Google APIs. Consequently, a broadly phrased request such as “summarize these documents” could cause an agent to select and upload a local or Drive-hosted document without presenting the exact source and external destination to the user for approval.
This violates least-privilege and informed-consent principles. Permission to access a file for a local task does not inherently grant permission to disclose it to an external service. ...[truncated 1991 chars]
- Remediation
View remediation
Remediation Suggestions
- Move all local-file and Google Drive source additions into the “Ask user first” category.
- Require explicit, per-source confirmation before upload. The prompt should identify:
- The exact local path or Drive item
- The destination service and Google account or profile
- That the complete content may leave the local environment
- Whether the source may contain sensitive information
- Distinguish remote URLs supplied directly by the user from local or private content. Only explicitly supplied public URLs should be eligible for autonomous addition.
- Require a second confirmation when adding folders, multiple files, wildcard selections, batch imports, or research results that may include private Drive content.
- Apply source allowlists and path restrictions so the agent cannot select unrelated files, credential directories, private keys, browser profiles, or hidden configuration files.
- Add a dry-run step that displays the proposed notebook, source list, file sizes, and destination before any transfer.
- Prefer explicit notebook IDs through
-n <notebook_id>and isolated profiles to prevent content from being uploaded to the wrong notebook or account. - Record an audit event for every upload, including the source, destination notebook, authenticated profile, time, and user approval.
- Update the autonomy policy to state that access to a file for analysis does not imply authorization to upload it to an external service.
- Document deletion and retention procedures so users can remove mistakenly uploaded sources promptly.
