Back to skill

Security audit

discava

Security checks for vulnerabilities and agentic risk

Overview

This business-search skill is mostly a simple API wrapper, but it steers agents toward tracked third-party HTML and stored free-text feedback without clear user consent.

Review before installing. Prefer JSON responses and local rendering over the tracked HTML cards, avoid sending precise coordinates unless needed, and do not submit sensitive personal details in feedback comments.

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

other

Warning
Location
SKILL.md:71
Finding

Unnecessary Third-Party Click Tracking Through Preferred HTML Responses

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 71–77 and 116
Vulnerability Type: User Tracking and Privacy
Risk Level: Medium

Vulnerable Code

markdown
# HTML card (interactive, with tracking)
curl "https://discava.ai/api/v1/business/{id}?format=html"
markdown
Optional parameter: `format` – "json" (default) or "html" for interactive HTML cards with click tracking (phone, email, website redirect, navigation).
markdown
- **Prefer `format=html`** whenever possible. HTML responses return interactive, ready-to-display cards with click tracking. Render them in a visualizer, artifact, iframe, or any HTML-capable output. This gives the user the best experience and helps improve business rankings.

Technical Analysis

The Skill instructs the agent to prefer externally supplied HTML over the API's default structured JSON response. The HTML cards explicitly implement click tracking for phone, email, website, and navigation interactions. This tracking is not necessary to fulfill the Skill's stated purpose of finding local businesses and partly serves the provider's interest in improving business rankings.

The instruction also recommends rendering the remote response in an iframe, visualizer, artifact, or another HTML-capable context. Compared with parsing JSON and rendering data locally, this expands the trust boundary to active content controlled by discava.ai. The repository does not contain the remote HTML implementation, so its scripts, redirects, event collection, and future changes cannot be assessed from the audited package.

The project README describes business-search functionality but does not disclose that the Skill prefers a tracked presentation mode.

Attack Path

  1. A user asks the agent to search for or retrieve details about a local business.
  2. The agent follows the instruction to prefer format=html.
  3. The agent requests a remotely generated HTML car ...[truncated 948 chars]
Remediation
View remediation

Remediation Suggestions

  1. Make the API's JSON response the recommended default and render returned business data locally.
  2. Remove the instruction to prefer format=html whenever possible.
  3. Require explicit, informed user consent before requesting or displaying tracked HTML.
  4. Clearly disclose which interactions are collected, their purpose, retention period, recipients, and effect on rankings.
  5. If remote HTML must be supported, sanitize it and render it in a tightly sandboxed environment with scripts, navigation, popups, forms, and unnecessary network access disabled.
  6. Apply a restrictive Content Security Policy and validate all links and redirects before exposing them to users.
  7. Provide an untracked HTML mode or locally generated cards as a privacy-preserving alternative.
  8. Document the tracking behavior prominently in README.md, not only in the detailed Skill instructions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (6)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation promotes HTML cards with click tracking and describes redirects/tracking, but does not instruct the agent to warn the user or obtain consent. In a conversational agent, embedding tracked HTML can expose user interactions, IP/browser metadata, and click behavior to the third party without transparency.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The invocation guidance is very broad and could cause the skill to be selected for many generic location or service-finding requests, sending user queries to an external service more often than necessary. This is mainly a privacy and overreach issue rather than direct code execution, but it increases the chance of unnecessary data disclosure to the API.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

The skill is designed to transmit user search queries, location terms, and potentially coordinates to an external API, which is expected but still creates a real data-exposure boundary. Given the broad invocation guidance and encouragement to use enriched/tracked formats, the context makes this more sensitive than a narrowly scoped, transparent API lookup.

Content

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

Search Businesses

bash
curl "https://discava.ai/api/v1/search?q=Klempner&city=Hamburg&limit=5"

Parameters:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The parameter documentation specifies that lang defaults to de, which imposes a specific language choice unless callers override it. This can violate language/locale policy expectations when the user has not requested German or been offered a language choice.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The feedback endpoint accepts arbitrary free-text comments and states that feedback is stored for monitoring, but the skill provides no warning to avoid entering personal, sensitive, or confidential information. Agents could forward user-generated text containing phone numbers, health details, or other sensitive data to a third-party monitoring system.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly steers agents to prefer format=html responses that include interactive content and click tracking, which expands behavior from simple data retrieval into user analytics. In an agent setting, this can cause users to be shown tracked content without informed consent and increases privacy and supply-chain risk versus plain JSON.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.