Back to skill

Security audit

AIsa Search

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed AIsa web research skill that sends user-directed search queries or URLs to its API, with no evidence of hidden execution, persistence, or destructive behavior.

Install this only if you intend to use AIsa as an external research provider. Avoid sending confidential prompts, private/internal URLs, secrets, or personal data as search queries or crawl/extract targets unless you are comfortable sharing that content with the AIsa API service.

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
  • 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
Findings (7)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill declares executable and network-relevant capabilities via required environment variables and a Python script entrypoint, but it does not define any explicit tool scope such as permissions or allowed-tools. This can allow overly broad invocation in hosts that rely on manifest scoping, increasing the chance of unintended network access or secret exposure through the skill's runtime behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The top-level description uses broad phrases like research, synthesis, competitor scans, and structured retrieval without meaningful boundaries, which can cause the skill to match a wide range of ordinary user requests. In agent systems that auto-select skills, this ambiguity can lead to over-invocation of a networked skill and unnecessary transmission of user prompts or context to an external service.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The 'When to use' section is broad and lacks limiting conditions or negative examples, so a planner may invoke this skill for many generic research or comparison tasks even when external search is unnecessary. Because the skill uses an API-backed search workflow, ambiguous routing increases privacy, cost, and data-governance risk by sending more queries and potentially sensitive task context to a third party.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest describes a skill for running web, multi-source, or last-30-days research and structured retrieval, which aligns with search and synthesis. However, this file also exposes Tavily extract, crawl, and map operations that fetch and traverse caller-supplied URLs, expanding the behavior from search/research queries into direct web content extraction and site crawling.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/search_client.py (reported line 33)May include surrounding context.

python
class SearchClient:
    """AIsa Search API client."""

    BASE_URL = "https://api.aisa.one/apis/v1"

    def __init__(self, api_key: Optional[str] = None):
        self.api_key = api_key or os.environ.get("AISA_API_KEY")

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

User-supplied queries and URLs are sent directly to third-party services, including search, extraction, crawl, and mapping endpoints, without any explicit consent notice or privacy guardrails in the tool itself. In an agent setting, this can cause sensitive internal URLs, proprietary research topics, or personal data to be exfiltrated to external providers unintentionally.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The constructor reads an API key from the environment, which is a sensitive credential access path. Although the code errors if the variable is missing, there is no comment, docstring warning, or user-facing disclosure about credential usage or the need to protect the environment variable.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.