Back to skill

Security audit

Tripadvisor Reviews API - Hotels, Restaurants, Attractions

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Tripadvisor data API guide that requires a Scavio API key and optional SDK installs, with ordinary privacy and dependency cautions but no hidden or destructive behavior found.

Install only if you are comfortable giving Scavio an API key for Tripadvisor lookups and paying per API call after free credits. Treat review text and reviewer metadata as personal or sensitive context: fetch only what you need, avoid unnecessary retention, and avoid redistributing author-identifying fields unless you have a clear reason. If using the SDKs, install them in an isolated environment and verify the package source where possible.

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 (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:238
Finding
Unverified Python Package Installation## Vulnerability Details **File Location**: `SKILL.md:238` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippet**: ```bash pip install scavio==0.15.0 ``` ### Technical Analysis The Skill instructs users to install the `scavio` Python package directly from the package registry. Although the version is pinned, the documentation does not provide an expected package hash, signature, verified source repository, or lockfile. Version pinning prevents accidental version drift but does not establish the authenticity or integrity of the downloaded artifact. This creates a supply-chain trust boundary: package installation and subsequent import may execute code supplied by the registry artifact. The documented client reads `SCAVIO_API_KEY`, so a compromised package could potentially access that credential when imported or instantiated. No evidence establishes that `scavio==0.15.0` is currently malicious. The risk arises from directing users to install and execute an externally maintained package without integrity verification. ### Attack Path 1. An attacker compromises the package publisher account, registry artifact, or associated release process. 2. The user follows the Skill documentation and runs `pip install scavio==0.15.0`. 3. The compromised artifact executes code during installation or when imported by the documented example. 4. Runtime code reads accessible environment variables, including `SCAVIO_API_KEY`. 5. The malicious code may exfiltrate credentials, alter API requests, access files available to the process, or perform other actions under the user's privileges. ### Impact Assessment Exploitation would run with the privileges of the user or service account performing the installation and executing the client. Potential impact includes disclosure of `SCAVIO_API_KEY`, unauthorized consumption of paid API credits, manipulation of Tripadvisor API results, and access to other ...[truncated 181 chars]
Remediation
## Remediation Suggestions - Publish and document cryptographic hashes for the approved package artifact. - Recommend installation with hash verification, such as a requirements file using `--require-hashes`. - Link to the verified official package record, source repository, and release provenance. - Use signed releases or trusted publishing with verifiable build provenance. - Recommend installation inside a dedicated virtual environment or container running with minimal filesystem and network privileges. - Advise users to expose only `SCAVIO_API_KEY` to the client process and not unrelated secrets. - Retain exact version pinning and add a documented dependency-review and update process.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:257
Finding
Unverified npm Package Installation## Vulnerability Details **File Location**: `SKILL.md:257` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippet**: ```bash npm install scavio@0.15.0 ``` ### Technical Analysis The Skill instructs users to retrieve and install the `scavio` package from the npm registry without supplying verified integrity metadata, a lockfile, a signature, or release provenance. Pinning version `0.15.0` reduces dependency drift but does not independently verify the package contents. npm packages may execute lifecycle scripts during installation and arbitrary JavaScript when imported. The documented package client reads `SCAVIO_API_KEY`, making that credential accessible to package runtime code. A compromised release or publisher account could therefore turn the documented setup step into a code-execution and credential-exposure path. No evidence establishes that `scavio@0.15.0` is currently malicious. This finding concerns the absence of documented integrity verification and isolation controls. ### Attack Path 1. An attacker compromises the npm publisher account, package artifact, or release pipeline. 2. The user runs the documented `npm install scavio@0.15.0` command. 3. Malicious code executes through an npm lifecycle script or later when the package is imported. 4. The package accesses environment variables available to the Node.js process, including `SCAVIO_API_KEY`. 5. The attacker may exfiltrate credentials, modify requests or responses, consume API credits, or access other resources available to the invoking account. ### Impact Assessment Exploitation could provide code execution with the privileges of the account running npm or the Node.js application. The resulting scope may include access to `SCAVIO_API_KEY`, application files, writable project content, and other environment secrets. It may also enable unauthorized API activity or response manipulation. No instruction in the audit ...[truncated 78 chars]
Remediation
## Remediation Suggestions - Provide and preserve a reviewed lockfile containing npm integrity values. - Link to the verified official npm scope, source repository, and release provenance. - Use signed or provenance-attested releases and document how users can verify them. - Recommend reviewing lifecycle scripts and using `--ignore-scripts` where package functionality permits. - Run the client in a restricted environment with only the required API credential and minimum filesystem permissions. - Avoid exposing unrelated environment secrets to the Node.js process. - Establish a dependency-monitoring and release-review process before recommending updated versions.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Confidence
81% confidence
Finding
The skill explicitly supports fetching review bodies together with reviewer metadata such as home town and contribution counts, but it does not instruct the caller to minimize collection, obtain user consent, or avoid unnecessary downstream storage and sharing of personal data. This creates a real privacy/compliance risk because agents may collect and repurpose personally associated review information beyond the user's immediate need.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:37