Back to skill

Security audit

Skylar Serper

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Serper.dev Google search integration with expected API-key and network use, though users should avoid sending sensitive queries to the search provider.

Install only if you are comfortable routing search queries through Serper.dev/Google and exposing a Serper API key to the runtime. Do not put secrets, private customer data, or confidential internal terms into search queries unless that external disclosure is acceptable for your environment.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • 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
Findings (7)

Ae1

High
Category
analysis-evasion
Content
`tools/serper_search.js`
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Credential Access

High
Category
Privilege Escalation
Content
const apiKey = process.env.SERPER_API_KEY;
  
  if (!apiKey) {
    throw new Error('SERPER_API_KEY not found in environment. Add it to your .env or TOOLS.md');
  }
  
  if (!params.q) {
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Lp3

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding
The skill declares an environment variable requirement but does not define an explicit tool scope such as permissions or allowed-tools. This weakens least-privilege boundaries and makes it harder for the host system to constrain what the skill may access, which can lead to unintended secret exposure or broader execution than expected.

Vague Triggers

Medium
Confidence
89% confidence
Finding
The manifest description says to use the skill whenever you need to "perform web searches, find information online, or research topics," which is a very broad activation scope. It does not provide specific trigger phrases, exclusions, or constraints, so the skill could be invoked for many ordinary user requests without clear boundaries.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The documentation omits a clear warning that user queries are transmitted to the third-party Serper.dev service. This can cause operators or users to unknowingly send sensitive prompts, internal names, credentials, or regulated data to an external API, creating privacy, compliance, and data-leakage risk.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
This tool sends user-supplied search queries to the third-party Serper API, which is an external data disclosure boundary. That is a real privacy/security concern because queries may contain sensitive user data, and the code provides no in-code disclosure, consent gate, redaction, or policy enforcement before transmitting them off-platform.

Natural-Language Policy Violations

Low
Confidence
71% confidence
Finding
The example call hard-codes `gl: "us"` and `hl: "en"`, and the description promotes geographic/language targeting, but the documentation does not state that locale should be chosen based on user preference. This can implicitly steer use toward English/US settings without user opt-in.