Back to skill

Security audit

Free Keyword Miner

Security checks for vulnerabilities and agentic risk

Overview

This keyword tool mostly matches its purpose, but it quietly hard-codes Reddit searches to sexual and relationship communities, which can produce unexpected sensitive or adult content for general keyword research.

Review before installing. The tool makes outbound requests to Google, Reddit, and Bing and writes a local JSON file. Its Reddit mode is not general-purpose: it searches sexual and relationship subreddits by default when --sources all or --sources reddit is used, so avoid it in workspaces where adult or sensitive content would be inappropriate. Install and run it in a low-privilege virtual environment, and choose an output path that will not overwrite important files.

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 (2)

T08 · Insecure Dependencies

Warning
Location
README.md:18
Finding

Unpinned Python Dependencies Allow Supply-Chain Compromise

Content
View full analysis

Vulnerability Details

File Location: README.md:18 and SKILL.md:49
Vulnerability Type: Unpinned third-party Python dependencies
Risk Level: Medium

Vulnerable Code

README.md:18:

bash
pip install people-also-ask beautifulsoup4 requests

SKILL.md:49:

bash
pip install people-also-ask beautifulsoup4 requests

The installed people-also-ask package is subsequently loaded by keyword_miner.py:31:

python
import people_also_ask as paa

Technical Analysis

The documented installation command retrieves the current versions of three third-party packages without exact version constraints, cryptographic hashes, or a dependency lockfile. Consequently, the code installed by users can differ from the code reviewed during this audit.

Python packages may contain package-controlled build logic, transitive dependencies, and executable module initialization code. A compromised publisher account, malicious replacement release, or compromised transitive dependency could therefore introduce attacker-controlled code. The people-also-ask package is also imported during normal use, causing its module initialization code to run in the Python process.

No evidence was found that the dependencies currently named by the project are malicious. The vulnerability is the mutable and unverifiable dependency resolution process.

Attack Path

  1. An attacker compromises a named dependency, one of its transitive dependencies, or the corresponding package publisher account.
  2. The attacker publishes a malicious release that remains compatible with the unrestricted package name.
  3. A user follows the documented pip install command.
  4. Pip resolves the compromised release because no reviewed version or hash is required.
  5. Malicious package code executes during a source build or when the installed module is imported.
  6. The payload operates with the permissions and environment access of ...[truncated 599 chars]
Remediation
View remediation

Remediation Suggestions

  1. Create a dependency manifest containing exact, reviewed versions for all direct and transitive dependencies.
  2. Generate and verify cryptographic hashes, then install with a command such as:
    bash
    python3 -m pip install --require-hashes -r requirements.txt
    
  3. Replace both unrestricted installation examples with installation from the locked manifest.
  4. Review dependency release artifacts before updating versions and use automated vulnerability and provenance scanning.
  5. Prefer binary wheels from trusted publishers where appropriate, and prevent unexpected source builds in deployment environments.
  6. Install and run the project in an isolated virtual environment or restricted container without unnecessary credentials or filesystem access.
  7. Remove dependencies that are not actually required by the implementation to reduce the supply-chain attack surface.

T08 · Insecure Dependencies

Warning
Location
README.md:49
Finding

Mutable npm Package Is Downloaded and Executed Through npx

Content
View full analysis

Vulnerability Details

File Location: README.md:49
Vulnerability Type: Execution of an unpinned third-party installer
Risk Level: Medium

Vulnerable Code

bash
npx clawhub@latest install free-keyword-miner

Technical Analysis

The installation instructions direct users to execute the mutable latest release of the third-party clawhub npm package. The npx utility can download a package that is not already installed and execute its command immediately. Because latest is a mutable registry tag, the executed implementation may change after this project has been reviewed.

The command does not specify an audited exact version or integrity value. A compromised package publisher, registry account, release process, or dependency could therefore substitute malicious code that executes when users follow the documented command.

No evidence was found that the current clawhub package is malicious. The risk arises from downloading and executing a mutable, externally controlled package version.

Attack Path

  1. An attacker compromises the clawhub publisher account, package release pipeline, or a dependency included in a new release.
  2. The attacker publishes a malicious version and assigns or causes the npm latest tag to resolve to it.
  3. A user runs the installation command from the README.
  4. npx downloads the version currently referenced by latest and executes its command-line entry point.
  5. The malicious package runs with the invoking user's permissions before or during skill installation.
  6. The payload can abuse any files, credentials, network access, or package configuration available to that user.

Impact Assessment

Successful exploitation could result in arbitrary code execution under the invoking user's account. Potential scope includes reading or modifying user-accessible files, stealing npm tokens or other environment credentials, making unauthorized network requests, ...[truncated 277 chars]

Remediation
View remediation

Remediation Suggestions

  1. Replace @latest with an exact, reviewed package version.
  2. Document the expected npm integrity digest and provide instructions for verifying the downloaded package before execution.
  3. Prefer installing from a lockfile or a verified package artifact rather than executing a mutable registry tag directly.
  4. Review package provenance, signatures, release ownership, lifecycle scripts, and transitive dependencies before approving upgrades.
  5. Run installation in a restricted environment without administrative privileges, sensitive environment variables, or unnecessary filesystem access.
  6. Consider downloading and inspecting the package first rather than combining retrieval and execution in a single npx command.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The declared purpose is generic keyword research, but the behavior reportedly includes hardcoded mining of adult/sexual and relationship-focused Reddit communities. That mismatch is dangerous because it hides sensitive or policy-relevant collection behavior from users and reviewers, creating consent, reputational, and governance risks and potentially exposing workflows to unexpected NSFW content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The README instructs users to run npx clawhub@latest install free-keyword-miner, which pulls and executes the latest published package version at runtime rather than a pinned, reviewed release. This creates a supply-chain risk: if the package or one of its transitive dependencies is compromised, users may execute attacker-controlled code simply by following the installation instructions.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill advertises and enables network access plus file output, but it does not declare any explicit tool scope or permissions boundaries. This is dangerous because downstream agents or users cannot clearly see or enforce what the skill is allowed to do, increasing the risk of overbroad network use, unexpected data exfiltration, or writes to unintended locations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The main usage guidance is written in Chinese, while the rest of the file includes English sections, and there is no statement that the skill is China-specific or that users may choose their preferred language. This creates a natural-language locale policy issue because the skill effectively imposes a language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This code presents its title, description, help strings, and runtime messages in Chinese in multiple places, even though the functional default language is set to English. That creates a language/locale policy issue because the user is not given a clear choice of interface language or informed that the skill's instructions and output will be Chinese.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill claims broad keyword research across general sources, but the Reddit mining is hard-coded to sexual and relationship-focused subreddits. This creates a deceptive data-collection behavior that can unexpectedly pull sensitive or adult-content topics unrelated to the user's stated intent, increasing the risk of inappropriate output, reputational harm, or unsafe downstream use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The quick-start command explicitly uses --output results.json, which causes a file write, but the README does not call out that the skill creates or overwrites a local output file. For markdown files, user-facing descriptions should disclose behaviors that affect user data or the local system, even when the impact is modest.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This code performs a file write to the path supplied by --output, but there is no confirmation prompt, no explanatory comment/docstring warning about overwriting, and no visible disclosure before the write occurs. For a code file, file writes should have some form of user disclosure unless clearly and explicitly warned about.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.