Back to skill

Security audit

Duckduckgo Search

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward DuckDuckGo search skill; it sends search terms to DuckDuckGo as expected and shows no hidden persistence, credential access, destructive behavior, or unrelated data handling.

Install only if you are comfortable with search terms being sent to DuckDuckGo. Do not use it with passwords, private keys, confidential documents, or sensitive internal identifiers unless that disclosure is acceptable.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill demonstrates outbound network access but does not declare any tool scope or permission boundary. That creates a governance and least-privilege problem: an agent or reviewer cannot easily determine or constrain that the skill will transmit user-supplied queries to an external service.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest description is written with very broad trigger language ('search the web', 'find information online', 'perform web-based research') that can match many ordinary user requests. In agent environments, this increases the chance of over-invocation, causing unintended external requests and unnecessary disclosure of user queries to a third party.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This code sends the user query to an external endpoint at api.duckduckgo.com, which is an external transmission of potentially sensitive input. In the context of a search skill this is expected behavior, but it still matters because prompts, internal identifiers, or confidential text could be transmitted off-platform if the skill is invoked with sensitive content.

Content

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

md
Returns:
        List of search results with title, url, description
    """
    url = "https://api.duckduckgo.com/"
    params = {
        "q": query,
        "format": "json",

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/duckduckgo_search.py (reported line 25)May include surrounding context.

python
"User-Agent": user_agent or "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
        })
        self.base_url = "https://duckduckgo.com/html/"
        self.json_api_url = "https://api.duckduckgo.com/"

    def search(self, query: str, max_results: int = 10, delay: float = 1.0) -> List[Dict]:
        """

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code sends the user-provided query to a remote web service via HTTP POST, which can expose potentially sensitive user input outside the local environment. Although the module docstrings describe search functionality, there is no explicit user-facing warning, confirmation, or disclosure that queries will be sent over the network.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The image-search path issues multiple HTTP GET requests to DuckDuckGo using the supplied query, including token retrieval and image-result fetching. There is no visible prompt, warning, or disclosure to users that their search terms are being sent to an external service.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.