alexey-brave-search

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This appears to be a benign web-search helper, but its documentation is inconsistent about using the Brave API/key and it requires a manual npm dependency install plus external web fetching.

Before installing, be comfortable running npm ci for this skill’s dependencies and note that the code appears to scrape Brave search results rather than use the official Brave Search API or BRAVE_API_KEY. Use it for public web searches and selected public URLs, and treat all returned page content as untrusted web text.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI04: Agentic Supply Chain Vulnerabilities
Low
What this means

Installing the skill may download and install npm dependencies on the local machine.

Why it was flagged

The skill requires a manual npm dependency installation even though the registry says there is no install spec. This is common for Node-based helper scripts, but users should notice that package code will be installed.

Skill content
Run once before first use:

cd ~/Projects/agent-scripts/skills/brave-search
npm ci
Recommendation

Install only from the expected skill directory, keep the lockfile intact, and review dependency changes before updating.

#
ASI09: Human-Agent Trust Exploitation
Low
What this means

Users may incorrectly assume the official Brave API and API key are being used.

Why it was flagged

The implementation queries Brave’s public search HTML page, while the skill description says it uses the Brave Search API and SKILL.md says it needs BRAVE_API_KEY. This appears to be a documentation/implementation mismatch rather than credential abuse.

Skill content
const url = `https://search.brave.com/search?q=${encodeURIComponent(query)}`;
Recommendation

Do not rely on the advertised API-key behavior unless the implementation is updated; treat it as a Brave web-search scraper based on the included code.

#
ASI02: Tool Misuse and Exploitation
Low
What this means

Running the content extractor sends a request from the user’s environment to the chosen URL and returns page text.

Why it was flagged

The content extractor fetches a user-supplied URL. That is central to the skill’s purpose, but it means the command can make outbound requests to arbitrary URLs.

Skill content
const url = process.argv[2];
...
const response = await fetch(url, {
Recommendation

Use it for public web pages you intend to fetch; avoid sensitive internal or private-network URLs unless that is explicitly intended.

#
ASI06: Memory and Context Poisoning
Low
What this means

A webpage could include text that tries to influence the agent if treated as instructions rather than source material.

Why it was flagged

Fetched webpage content is printed back for the agent/user to consume. Webpage text can contain untrusted instructions or misleading content, although this skill does not persist it or make it authoritative.

Skill content
if (r.content) {
	console.log(`Content:\n${r.content}`);
}
Recommendation

Treat search snippets and extracted page content as untrusted reference material, not as instructions to the agent.