Back to skill

Security audit

Prayer Times, World Salah Times

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it advertises: it fetches prayer times using location-related web services, with no hidden persistence or local data access found.

Install only if you are comfortable with the skill contacting ipapi.co, OpenStreetMap Nominatim, and Aladhan API. To reduce location privacy exposure, provide a city manually instead of using auto-detect when possible.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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)

Lp3

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding
The skill uses network-dependent functionality and documents internet access in free text, but it does not declare a structured tool scope such as explicit permissions or allowed-tools in the manifest. That creates a policy and review gap: a host may grant broader capabilities than users or reviewers expect, and the skill's actual data flows are not machine-verifiable.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill advertises automatic location detection via IP and names third-party services, but it does not explicitly warn users that invoking auto-detect will disclose their IP-derived location data to external providers. This can expose approximate location without informed consent, which is especially sensitive because the feature is triggered by generic queries like 'prayer times' rather than an explicit location-sharing command.

External Transmission

Medium
Category
Data Exfiltration
Content
def get_prayer_times(lat, lon):
    """Fetch prayer times"""
    try:
        url = f"https://api.aladhan.com/v1/timings?latitude={lat}&longitude={lon}&method=2"
        req = urllib.request.Request(url, headers={'User-Agent': 'GlobalPrayerTimes/1.0'})
        with urllib.request.urlopen(req, timeout=10) as response:
            data = json.loads(response.read())
Confidence
84% confidence
Finding
The script sends latitude and longitude to the external Aladhan API to retrieve prayer times. This data flow is functionally required for the skill, so it is not inherently malicious, but it is still a real privacy-relevant external transmission because precise location data is disclosed to a third party.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
When no city is provided, the script automatically calls a third-party IP geolocation service to infer the user's location, but it does not obtain consent or clearly disclose that location-related data will be shared externally. In a prayer-times skill, location is necessary for functionality, but silent auto-geolocation still creates a privacy risk because users may not expect their IP-derived location to be sent to another service.

Static analysis

No suspicious patterns detected.