Back to skill

Security audit

Nimble Real-Time Web Intelligence Tools

Security checks for vulnerabilities and agentic risk

Overview

This is a legitimate Nimble web-research integration, but it broadly reroutes ordinary web questions through a third-party CLI and lacks clear privacy and install-safety boundaries.

Install only if you are comfortable with web searches, URLs, crawls, and extracted content being handled by Nimble's external service. Avoid sending internal URLs, credentials, session cookies, or sensitive person-research queries unless you have a clear lawful and privacy-appropriate reason. Prefer a pinned or locally controlled CLI install instead of the unpinned global npm command.

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
SKILL.md:38
Finding

Unpinned Global Installation of a Third-Party CLI

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:38
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: Medium

Vulnerable Code

bash
npm i -g @nimble-way/nimble-cli

Technical Analysis

The installation command retrieves the current npm release of @nimble-way/nimble-cli without pinning an exact version or verifying package integrity. Consequently, the dependency executed by users may differ from the version assessed when this Skill was reviewed.

npm packages can execute lifecycle scripts during installation. If the package, maintainer account, publication process, or upstream dependency chain is compromised, installation could execute attacker-controlled code with the privileges of the invoking user. The global -g installation increases system-wide exposure and can replace an existing trusted CLI.

This is a supply-chain weakness rather than evidence that the named package is currently malicious.

Attack Path

  1. An attacker compromises the npm package, a maintainer account, or an upstream dependency and publishes a malicious release.
  2. A user follows the Skill prerequisite and runs the unversioned global installation command.
  3. npm resolves the mutable latest release rather than a previously audited version.
  4. Malicious package code or an installation lifecycle script executes with the user's privileges.
  5. The globally installed nimble command may subsequently execute attacker-controlled behavior whenever the Skill invokes it.

Impact Assessment

Successful exploitation could provide code execution under the installing user's account. Depending on that account's permissions, the attacker could access user-readable files and environment variables, modify user-level configuration, make outbound network requests, or replace the globally trusted nimble executable. Administrator-level impact would require the installation itself to be run with elev ...[truncated 16 chars]

Remediation
View remediation

Remediation Suggestions

  • Pin the dependency to an exact, reviewed version, for example:
    bash
    npm install -g @nimble-way/nimble-cli@0.5.0
    
    The selected version must be independently verified rather than inferred solely from the Skill metadata.
  • Prefer a project-local installation governed by a committed lockfile instead of a global installation.
  • Verify package provenance and registry integrity before installation, including publisher identity and the expected package checksum.
  • Use npm provenance attestations or an equivalent trusted verification mechanism where available.
  • Disable lifecycle scripts with --ignore-scripts if the package does not require them; otherwise, review the relevant scripts before installation.
  • Avoid running npm installation with sudo, as root, or from another privileged account.
  • Document a controlled upgrade procedure requiring review and integrity verification before changing the pinned version.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill declares itself as the DEFAULT for essentially all web-search-like requests using broad natural-language triggers such as "find," "look up," and "what is." This can cause the agent to route many ordinary user prompts to an external third-party CLI by default, increasing unintended data disclosure and reducing user awareness and consent around use of an external service.

Content

No source excerpt is available for this finding.

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

Scanner excerpt · SKILL.md (reported line 48)May include surrounding context.

nimble --version

text

For Claude Code, add the API key to `~/.claude/settings.json`:

```json
{ "env": { "NIMBLE_API_KEY": "your-api-key" } }

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill strongly encourages using Nimble instead of built-in web tools for searches and URL extraction, but it does not clearly warn that user queries, URLs, and potentially fetched page content are transmitted to an external vendor. In a research workflow, users may provide sensitive terms, internal URLs, or confidential investigation targets, which could be exposed to the third-party service without informed consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file explicitly recommends using the social topic for researching a person and describes direct retrieval from platforms like LinkedIn, X, YouTube, Reddit, and forums, but it provides no privacy, legality, or sensitivity guardrails. In a default web-research skill, this omission can normalize person-focused OSINT gathering and increase the chance of collecting or synthesizing sensitive personal data without appropriate caution.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.