T08 · Insecure Dependencies
- Location
scripts/nblm.sh:18- Finding
Unpinned Third-Party Package Execution During Google Authentication
- Content
View full analysis
Vulnerability Details
File Location:
scripts/nblm.sh, lines 18 and 51
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code:
bash PKG="@roomi-fields/notebooklm-mcp"bash auth) # One-time interactive Google login (opens a visible Chrome window). exec npx -y -p "$PKG" notebooklm-mcp-setup-auth "$@" ;;Technical Analysis
The
authcommand invokesnpx -ywith an npm package name that has no exact version constraint. Consequently, npm may retrieve and execute whichever package version the registry resolves at invocation time. The project provides neither a committed lockfile nor an integrity constraint for this executable.The
-yoption suppresses the normal installation confirmation, andexecreplaces the wrapper process with package-controlled code. This creates a supply-chain trust boundary in which the code executed by an audited Skill can change after the audit without any corresponding modification to the Skill repository.This operation is especially sensitive because the package is launched as part of a Google authentication workflow and opens an interactive browser. If a package release, maintainer account, registry response, or transitive dependency were compromised, malicious code could run with the privileges of the user invoking the Skill.
There is no evidence in the audited files that the current npm package is malicious. The confirmed issue is the unsafe, unpinned remote dependency execution mechanism.
Attack Path
- An attacker compromises the npm package, its publisher account, the package distribution channel, or a transitive dependency.
- The attacker publishes a malicious version that still exposes the expected
notebooklm-mcp-setup-authexecutable. - A user or AI Agent runs
scripts/nblm.sh auth. npx -y -p "@roomi-fields/notebooklm-mcp"resolves and downloads the remotely supplied pac ...[truncated 857 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
@roomi-fields/notebooklm-mcpto an exact, reviewed version rather than relying on the registry's current resolution. - Declare the dependency in a project manifest and commit the corresponding lockfile.
- Install dependencies in a controlled setup step using lockfile-enforcing commands such as
npm ci. - Invoke the locally installed binary from
node_modules/.bininstead of downloading and executing it throughnpx -yduring authentication. - Preserve and verify registry integrity metadata, and review both direct and transitive dependency changes before upgrades.
- Remove automatic confirmation suppression so unexpected package installation cannot proceed silently.
- Run the authentication utility with the minimum required filesystem and environment access, preferably in an isolated execution context.
- Pin
