Back to skill

Security audit

Smart Crawler Free

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Notion archive/search helper, but it asks users to install an unpinned global CLI that handles a Notion token and local workspace copies, while its instructions also drift beyond the stated read-only scope.

Install only if you are comfortable running a globally installed third-party npm CLI with access to your selected Notion content. Use a dedicated read-only Notion integration, limit shared pages, avoid long-lived exported tokens, prefer an isolated/local pinned install if possible, and treat the local archive as a sensitive copy of your workspace.

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:164
Finding

Unpinned Global npm Dependency Receives Access to Notion Credentials and Workspace Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 164–175; corroborating dependency declarations at lines 302 and 307–309
Vulnerability Type: Unpinned and unaudited third-party dependency with access to sensitive credentials
Risk Level: Medium

Vulnerable Code Snippet

bash
npm install -g smart-crawler
bash
export NOTION_TOKEN="your_notion_integration_token"
smart-crawler sync --source api

The dependency is also declared as mandatory:

markdown
| smart-crawler CLI | Command-line tool | Required | `npm install -g smart-crawler` |

Technical Analysis

The Skill directs users or an AI Agent to install smart-crawler globally from npm without specifying an exact version, integrity hash, lockfile, verified publisher, or auditable source repository. Consequently, the dependency resolved at installation time can change after the Skill itself has been reviewed.

npm installation may execute package lifecycle scripts with the privileges of the installing user. Global installation also places the package executable in a broadly accessible command location. The installed CLI is subsequently invoked with NOTION_TOKEN in its environment and is expected to process authorized Notion workspace content.

Although SKILL.md claims that the CLI performs read-only operations, this project contains no CLI implementation or enforcement mechanism with which to verify that claim. The audit found no direct evidence that the current package is malicious; the risk arises from the mutable, externally supplied dependency and its access to credentials and data.

Attack Path

  1. An attacker compromises the npm package, its publisher account, or a future package release.
  2. A user or Agent follows the Skill instructions and runs npm install -g smart-crawler.
  3. npm downloads the attacker-controlled release and may execute malicious lifecycle scripts with the installing user's privileges.

...[truncated 1111 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin the dependency to a reviewed exact version rather than installing the mutable latest release.
  2. Provide and verify registry integrity metadata, a lockfile, and the expected package publisher identity.
  3. Link to the official source repository and use reproducible builds so the distributed package can be compared with audited source code.
  4. Avoid global installation. Install the dependency locally in an isolated project or container with a locked dependency graph.
  5. Disable npm lifecycle scripts during installation where compatible, and review any scripts before allowing them to execute.
  6. Run the CLI under a dedicated, unprivileged account or sandbox with restricted filesystem and network access.
  7. Grant the Notion integration only read access to the minimum required pages, and use a dedicated token that can be quickly rotated or revoked.
  8. Avoid broadly exporting the token into a long-lived shell environment. Provide it only to the reviewed process at invocation time through an appropriate secret-management mechanism.
  9. Document package provenance, supported versions, integrity verification procedures, and a response process for dependency compromise.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest presents a narrow offline archival and query tool, but the body expands the scope to generic operational verbs that imply broader filesystem or data-management authority. In an agent setting, this kind of scope drift is dangerous because routing and permission decisions may rely on the manifest, while the runtime instructions push the agent into higher-risk actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill encourages synchronization and local archiving of workspace content but does not prominently warn that local copies may contain sensitive notes, documents, attachments, or team knowledge. In the context of a crawler that stores data on disk and exposes search/SQL interfaces, missing disclosure can lead users to archive confidential content without understanding retention and exposure risks.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill repeatedly asserts it is strictly read-only, yet nearby sections advertise create, modify, import, export, reset, save, and conversion operations. This mismatch can cause an agent or user to authorize broader actions than expected, undermining trust boundaries and potentially leading to unintended data mutation or exfiltration.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger condition says to use the skill whenever database operations, SQL queries, or data storage management are needed, which is much broader than the documented Notion archive use case. Overbroad activation criteria can cause an agent to invoke this skill in unrelated contexts, increasing the chance of unnecessary local data ingestion, command execution, or exposure of sensitive archived content.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.