Back to skill

Security audit

UnSearch

Security checks for vulnerabilities and agentic risk

Overview

This documentation-only skill uses the UnSearch API for web search and scraping as advertised, but users should treat all submitted queries and URLs as data sent to a third party.

Install only if you are comfortable sending search queries, fact-check claims, target URLs, and any extracted page content to UnSearch. Do not use it with secrets, internal-only URLs, private documents, or regulated data unless your policy allows it; use the documented zero-retention header for sensitive-but-approved queries and protect the UNSEARCH_API_KEY like any other credential.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (17)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README promotes web search, URL extraction, and deep research features but does not disclose that user prompts, search terms, and supplied URLs may be transmitted to a third-party service. This can mislead operators into sending sensitive internal queries or private links off-platform without informed consent, creating privacy, compliance, and data-handling risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description promotes web search, scraping, and research through a third-party API but does not clearly warn up front that user queries and provided URLs are transmitted off-platform and may cause remote sites to be fetched and processed. This creates a real data-handling and privacy risk because users may supply sensitive prompts, internal URLs, or proprietary targets without realizing they are being sent externally.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

Declaring a third-party API base URL and required API-key authentication establishes that the skill depends on external network transmission. In this skill context, that is expected functionality, but it is still a real security-relevant behavior that should be disclosed because user inputs and target URLs leave the local environment.

Content

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

md
## API Endpoints

**Base URL:** `https://api.unsearch.dev/api/v1`

All requests require header: `X-API-Key: $UNSEARCH_API_KEY`

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The examples demonstrate full-page scraping and extraction workflows without a clear warning that remote page contents will be collected, transmitted, and potentially retained by the external provider. This increases the chance of inadvertent exfiltration of sensitive page contents or use of the tool on internal or private resources without informed consent.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

This is a duplicate manifestation of the same external transmission behavior at the concrete search example URL. The context makes it somewhat expected, but the danger remains because the example normalizes sending arbitrary search text and possibly scraped content to a third-party service without nearby warnings.

Content

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

Search the web with optional content scraping.

bash
curl -X POST "https://api.unsearch.dev/api/v1/search" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

This is a duplicate manifestation of the same external transmission behavior at the concrete search example URL. The context makes it somewhat expected, but the danger remains because the example normalizes sending arbitrary search text and possibly scraped content to a third-party service without nearby warnings.

Content

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

Search the web with optional content scraping.

bash
curl -X POST "https://api.unsearch.dev/api/v1/search" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

This line again evidences transmission to the external UnSearch agent-search endpoint. In a research skill this behavior is functionally necessary, but absent strong privacy warnings it can still lead to inadvertent disclosure of sensitive prompts and research topics.

Content

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

AI-optimized search with optional answer generation.

bash
curl -X POST "https://api.unsearch.dev/api/v1/agent/search" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

This line again evidences transmission to the external UnSearch agent-search endpoint. In a research skill this behavior is functionally necessary, but absent strong privacy warnings it can still lead to inadvertent disclosure of sensitive prompts and research topics.

Content

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

AI-optimized search with optional answer generation.

bash
curl -X POST "https://api.unsearch.dev/api/v1/agent/search" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This duplicate URL-level finding corresponds to the extract endpoint, which is particularly sensitive because the submitted URLs themselves may grant access to non-public resources or reveal internal systems. The skill context increases risk compared with ordinary web search because extraction invites users to submit direct targets for remote fetching.

Content

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

Extract content from specific URLs.

bash
curl -X POST "https://api.unsearch.dev/api/v1/agent/extract" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This duplicate URL-level finding corresponds to the extract endpoint, which is particularly sensitive because the submitted URLs themselves may grant access to non-public resources or reveal internal systems. The skill context increases risk compared with ordinary web search because extraction invites users to submit direct targets for remote fetching.

Content

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

Extract content from specific URLs.

bash
curl -X POST "https://api.unsearch.dev/api/v1/agent/extract" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

Deep research submits the user's query to an external service that then gathers and synthesizes multi-source content. This can expose sensitive investigative topics, strategic planning questions, or proprietary hypotheses to a third-party processor even if the feature is operationally intended.

Content

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

Multi-source research with AI synthesis.

bash
curl -X POST "https://api.unsearch.dev/api/v1/agent/research" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

This duplicate endpoint finding again reflects external claim-verification traffic to UnSearch. The feature is legitimate, but without explicit safeguards it may be used on confidential claims or incident narratives that should not be shared with a third party.

Content

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

Verify claims against multiple sources.

bash
curl -X POST "https://api.unsearch.dev/api/v1/verify/claim" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

This duplicate endpoint finding again reflects external claim-verification traffic to UnSearch. The feature is legitimate, but without explicit safeguards it may be used on confidential claims or incident narratives that should not be shared with a third party.

Content

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

Verify claims against multiple sources.

bash
curl -X POST "https://api.unsearch.dev/api/v1/verify/claim" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The Python example embeds the external API base URL and provides ready-to-use code that transmits caller-supplied data off-platform. This is not malicious, but it operationalizes external transmission without built-in consent prompts, validation, or warnings about sending sensitive input.

Content

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

md
import os

API_KEY = os.environ["UNSEARCH_API_KEY"]
BASE_URL = "https://api.unsearch.dev/api/v1"

async def search(query: str, scrape: bool = False):
    async with httpx.AsyncClient() as client:

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The JavaScript example similarly packages external transmission behavior into convenient client code without emphasizing privacy implications. In agent contexts, such snippets are often copied directly into production workflows, increasing the likelihood of silent third-party disclosure of user inputs.

Content

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

javascript
const API_KEY = process.env.UNSEARCH_API_KEY;
const BASE_URL = "https://api.unsearch.dev/api/v1";

async function search(query, scrapeContent = false) {
  const response = await fetch(`${BASE_URL}/search`, {

External Transmission

Medium
Category
Data Exfiltration
Confidence
83% confidence
Finding

This duplicate endpoint finding appears in the privacy-mode example; despite the privacy framing, data still leaves the environment and is processed remotely. The context can be misleading because users may interpret zero-retention as eliminating all security concerns when it only narrows one aspect of risk.

Content

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

For sensitive queries, enable zero-retention:

bash
curl -X POST "https://api.unsearch.dev/api/v1/search" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "X-Zero-Retention: true" \
  -H "Content-Type: application/json" \

External Transmission

Medium
Category
Data Exfiltration
Confidence
83% confidence
Finding

This duplicate endpoint finding appears in the privacy-mode example; despite the privacy framing, data still leaves the environment and is processed remotely. The context can be misleading because users may interpret zero-retention as eliminating all security concerns when it only narrows one aspect of risk.

Content

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

For sensitive queries, enable zero-retention:

bash
curl -X POST "https://api.unsearch.dev/api/v1/search" \
  -H "X-API-Key: $UNSEARCH_API_KEY" \
  -H "X-Zero-Retention: true" \
  -H "Content-Type: application/json" \

Static analysis

No suspicious patterns detected.