Back to skill

Security audit

LovTrip AI Travel Planner

Security checks for vulnerabilities and agentic risk

Overview

The travel-planning skill is coherent, but its setup runs a mutable third-party package with API keys and gives limited privacy disclosure for travel data sent to external services.

Review this before installing. Use a pinned, reviewed version of the LovTrip package instead of `latest`, run it with dedicated low-quota API keys, and avoid exposing unrelated environment variables. Be aware that itinerary details such as destination, dates, budget, companions, and preferences may be sent to external AI, map, hotel, or flight services.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:16
Finding

Unpinned Third-Party Package Execution with API Credentials

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 16–25
Vulnerability Type: Unpinned dependency execution with sensitive environment access
Risk Level: Medium

Vulnerable Code

json
{
  "mcpServers": {
    "lovtrip": {
      "command": "npx",
      "args": ["-y", "lovtrip@latest", "mcp"],
      "env": {
        "AMAP_API_KEY": "your-amap-api-key",
        "OPENROUTER_API_KEY": "your-openrouter-api-key"
      }
    }
  }
}

Technical Analysis

The configuration directs npx to download and execute lovtrip@latest automatically. The latest tag is mutable, so the code executed at deployment or startup may differ from the version reviewed previously. The -y option suppresses the normal installation confirmation, further reducing opportunities to detect an unexpected package resolution.

The downloaded process also receives AMAP_API_KEY and OPENROUTER_API_KEY through its environment. Since the dependency's implementation is not included in the audited project, its runtime behavior, network destinations, transitive dependencies, and handling of these credentials cannot be verified from the available files.

This constitutes an insecure supply-chain pattern. It does not prove that the current lovtrip package is malicious, but a compromised maintainer account, registry release, dependency, or mutable package tag could turn the documented startup command into an arbitrary-code execution and credential-exposure channel.

Attack Path

  1. An attacker compromises the package publisher, registry distribution path, or a dependency used by a future lovtrip release.
  2. The malicious release becomes the version resolved by the mutable lovtrip@latest reference.
  3. A user starts the configured MCP server.
  4. npx -y downloads and executes the release without interactive approval or an integrity-pinned artifact.
  5. The package runs with the permissions of the invoking agent or user.
  6. The package reads the API credentials s ...[truncated 822 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace lovtrip@latest with an exact, reviewed package version; do not use a mutable distribution tag in executable configuration.
  2. Verify the resolved artifact with a lockfile and registry integrity hash. Preserve reviewed dependency metadata in version control where supported.
  3. Establish a controlled update process that reviews package changes and transitive dependencies before advancing the pinned version.
  4. Avoid unattended installation using -y in security-sensitive environments, or install the approved package during a separate verified build stage.
  5. Run the MCP server in a sandbox or isolated service account with minimum filesystem, process, and network permissions.
  6. Provide dedicated, least-privilege API keys rather than keys shared with other workloads. Apply provider-side quota, spending, endpoint, and origin restrictions where available.
  7. Prevent the child process from inheriting unrelated environment variables or credentials.
  8. Restrict outbound traffic to explicitly required provider endpoints and monitor for anomalous destinations.
  9. Rotate the API keys if this configuration has already been used with an unverified package release, and review provider logs for unexpected activity.
  10. Vendor or internally mirror the reviewed package when stronger supply-chain assurance is required.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill description is broad enough to trigger on many ordinary travel-related conversations, which can cause the agent to invoke this skill when the user did not explicitly request itinerary planning or external lookups. In this skill's context, over-triggering is risky because the workflow includes optional hotel and flight searches that may lead to unnecessary collection or transmission of travel details to third-party services.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill advertises hotel and flight search features and is configured to use external services, but it does not warn that user itinerary data, dates, destinations, and possibly companion counts or budget information may be sent to third parties. In a travel-planning context, this is sensitive behavioral and location data, so lack of disclosure can create privacy and consent risks even if the underlying functionality is legitimate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file contains user-facing instructions and examples only in Chinese, which can amount to a language/locale policy issue when no opt-in or alternative language is provided. The stated rule requires flagging forced language choices unless the skill offers user choice or clearly documents a justified locale restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

这是一个 markdown 文件,适用自然语言政策检查。全文标题、参数说明和示例均仅使用中文,未见任何让用户选择语言/地区的说明,也未说明该技能仅面向特定中文区域用户;这可能构成未获用户选择即强制特定语言的策略问题。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.