Back to skill

Security audit

Airbnb — complete toolkit

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Airbnb/StayingAPI integration skill, with ordinary API-key and external-request risks that users should handle carefully.

Install only if you are comfortable sending Airbnb-related search details to StayingAPI. Prefer a sandbox stay_test_ key for evaluation, use an agent or OS secret store instead of a shell profile when possible, avoid exposing the key in logs or history, and rotate or revoke it if it may have been shared.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
references/auth-setup.md:7
Finding

Insecure Guidance for Persistent Plaintext API Key Storage

Content
View full analysis
` to the declared StayingAPI service. 5. The API accepts the attacker’s requests with the authority associated with the compromised key until it is revoked or rotated. ### Impact Assessment A stolen key could ...[truncated 405 chars]
Remediation
View remediation
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 (6)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill says to use it for 'Any Airbnb data task — the agent picks the right call,' which is an overly broad invocation trigger. Broad routing guidance can cause the agent to invoke this networked skill in situations where a narrower or local capability would suffice, increasing unnecessary external data sharing and the chance of unintended actions.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This skill instructs the agent to send authenticated requests with Authorization: Bearer $STAYINGAPI_KEY and a user agent to https://api.stayingapi.com/v1. That creates an external transmission channel for potentially sensitive user travel queries and metadata, and any compromise, misuse, or over-invocation of the service could expose user data or consume credentials.

Content

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

md
- **Authorization:** `Bearer $STAYINGAPI_KEY`
- **User-Agent:** your agent's name (e.g. `ClaudeCode/1.0`).

Base URL: `https://api.stayingapi.com/v1`.

## Tools

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The guide explicitly tells users to persist STAYINGAPI_KEY across sessions but does not warn that this commonly writes a long-lived secret into shell profiles or other files on disk, where it may be exposed through backups, shared accounts, logs, or accidental disclosure. In an agent/tooling context, persistent credentials also increase blast radius because future sessions or unrelated tools may automatically inherit and use the key.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · SKILL.md (reported line 179)May include surrounding context.

Step 3 — verify

bash
curl -s "https://api.stayingapi.com/v1/account" -H "Authorization: Bearer $STAYINGAPI_KEY" | head

A 200 with your account envelope means the key works. A missing/invalid key returns 401 authentication_error (never billed). Full contract: https://api.stayingapi.com/openapi.json.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · references/auth-setup.md (reported line 34)May include surrounding context.

Step 3 — verify

bash
curl -s "https://api.stayingapi.com/v1/account" -H "Authorization: Bearer $STAYINGAPI_KEY" | head

A 200 with your account envelope means the key works. A missing/invalid key returns 401 authentication_error (never billed). Full contract: https://api.stayingapi.com/openapi.json.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · references/auth-setup.md (reported line 37)May include surrounding context.

Step 3 — verify

bash
curl -s "https://api.stayingapi.com/v1/account" -H "Authorization: Bearer $STAYINGAPI_KEY" | head

A 200 with your account envelope means the key works. A missing/invalid key returns 401 authentication_error (never billed). Full contract: https://api.stayingapi.com/openapi.json.

Static analysis

No suspicious patterns detected.