Back to skill

Security audit

Hong Kong MTR Next-Train ETA | 港鐵實時到站預報

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Hong Kong MTR ETA skill that uses disclosed transit data sources and local station-cache files for its stated purpose.

Before installing, confirm you are comfortable with the skill making outbound requests to the disclosed Hong Kong MTR and DATA GOV HK endpoints and refreshing a local station CSV inside the skill directory. No evidence of secret handling, unrelated file access, or hidden execution was found.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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
Findings (6)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · scripts/mtr_lines_and_stations.csv (reported line 1)May include surrounding context.

text
"Line Code","Direction","Station Code","Station ID","Chinese Name","English Name","Sequence"
"AEL","DT","AWE","56","博覽館","AsiaWorld-Expo",1.00
"AEL","DT","AIR","47","機場","Airport",2.00
"AEL","DT","TSY","46","青衣","Tsing Yi",3.00

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill invokes Python scripts and documents network/file access, but it does not declare enforceable tool scope such as permissions or allowed-tools. That creates a policy gap: a host agent may permit broader file reads or outbound network use than intended, so the skill's safety relies only on prose instructions rather than technical restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The README states that output language is tc or en, which imposes a narrow locale/language constraint in the skill's natural-language interface description. Because the file does not explain that this is a user-selectable option driven by data-source limitations or region-specific scope, it risks violating the policy against forced language constraints without clear opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The language handling policy states that Chinese queries map to TC and English/non-Chinese queries map to EN, which imposes a locale choice automatically. This is a natural-language policy concern because the user is not explicitly offered a language preference or opt-in override in the documented behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The CLI entry point sets lang to "EN" whenever the user does not provide a language argument. This forces a specific language choice by default rather than offering an explicit user selection, which matches the language/locale policy concern for natural-language behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This CSV includes bilingual station names with a fixed Chinese/English locale schema across the dataset. Because SQP-3 applies to all file types and flags language/locale policy violations, the file presents a predefined locale choice without any accompanying natural-language justification or opt-in mechanism.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.