Back to skill

Security audit

Swiss Public Transport

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Swiss public transport lookup helper that uses the public transport.opendata.ch API and shows no hidden, persistent, destructive, or credential-seeking behavior.

Before installing, be aware that use of the skill sends station names, routes, dates, and times to the public transport.opendata.ch service. It does not request credentials or modify local data, but users who need strict privacy for travel queries should consider that external API disclosure.

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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding
The code is clearly related to Swiss public transport and does support A-to-B journey planning plus connection details, which aligns with part of the description. However, the declared purpose claims additional capabilities—station search and departure boards—that are not present in this code chunk. The script only calls the /v1/connections endpoint and requires both a source and destination; it does not query station search endpoints or station departure-board endpoints. There are no unrelated triggers or suspicious extra capabilities, but the description overstates the implemented functionality, so this is a description/behavior mismatch.

Lp3

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding
Without declared permissions the skill's intent is opaque and cannot be validated.

Static analysis

No suspicious patterns detected.