Back to skill

Security audit

Quran Api

Security checks for vulnerabilities and agentic risk

Overview

This is a small Quran lookup helper that uses a disclosed external API and does not show hidden persistence, credential access, destructive actions, or unrelated behavior.

Install only if you are comfortable with Quran lookup requests being sent to api.alquran.cloud. The skill appears narrow and non-persistent, but it depends on that third-party API and currently provides Arabic-focused instructions and output.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

External Script Fetching

High
Category
Supply Chain
Content
case "$ACTION" in
  "surah_by_number")
    curl -s "${BASE_URL}/surah/${PARAM}/ar" | python3 -c "
import sys, json
data = json.loads(sys.stdin.read())
if data['code'] == 200:
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

External Script Fetching

High
Category
Supply Chain
Content
"
    ;;
  "ayah")
    curl -s "${BASE_URL}/ayah/${PARAM}/ar" | python3 -c "
import sys, json
data = json.loads(sys.stdin.read())
if data['code'] == 200:
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

External Script Fetching

High
Category
Supply Chain
Content
"
    ;;
  "page")
    curl -s "${BASE_URL}/page/${PARAM}/ar" | python3 -c "
import sys, json
data = json.loads(sys.stdin.read())
if data['code'] == 200:
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

External Script Fetching

High
Category
Supply Chain
Content
"
    ;;
  "juz")
    curl -s "${BASE_URL}/juz/${PARAM}/ar" | python3 -c "
import sys, json
data = json.loads(sys.stdin.read())
if data['code'] == 200:
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Natural-Language Policy Violations

Medium
Confidence
83% confidence
Finding
The natural-language content of the skill is entirely Arabic, which can constitute a language policy issue when the skill implicitly forces one language without user opt-in or explanation. The file does not state that the skill is intentionally region- or language-specific, nor does it offer an alternative language.

External Transmission

Medium
Category
Data Exfiltration
Content
## API

Base URL: `https://api.alquran.cloud/v1/`

## التجربة
Confidence
88% confidence
Finding
The skill depends on a remote third-party API, which means user queries and usage metadata are transmitted outside the local trust boundary. Even though the endpoint uses HTTPS and the use case appears legitimate, external transmission introduces privacy, availability, and supply-chain trust risks if not clearly disclosed and constrained.

External Transmission

Medium
Category
Data Exfiltration
Content
## API

Base URL: `https://api.alquran.cloud/v1/`

## التجربة
Confidence
88% confidence
Finding
The skill depends on a remote third-party API, which means user queries and usage metadata are transmitted outside the local trust boundary. Even though the endpoint uses HTTPS and the use case appears legitimate, external transmission introduces privacy, availability, and supply-chain trust risks if not clearly disclosed and constrained.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
Multiple user-facing strings are fixed in Arabic, and the script does not offer an alternative language or any mechanism for user locale selection. Under the policy, forcing a specific language without opt-in is a natural-language policy concern unless clearly justified as region-specific.

Missing User Warnings

Low
Confidence
95% confidence
Finding
The skill documentation identifies an external API endpoint but does not clearly warn users that their queries will be transmitted to a third-party service. This creates a transparency and privacy issue because users may submit sensitive search terms or usage context without realizing the data leaves the local environment.

Intent-Code Divergence

Low
Confidence
98% confidence
Finding
The header documentation explicitly says the script supports `search "keyword"`, and the usage string in the default case also lists `search`. However, the `case` statement only implements `surah_by_number`, `ayah`, `page`, and `juz`, so invoking `search` does not perform the documented behavior.

Missing User Warnings

Low
Confidence
87% confidence
Finding
This code file performs HTTP requests to api.alquran.cloud via curl, which transmits the user-supplied query parameter to an external service. While the script comments describe usage, there is no runtime notice, confirmation, or explicit disclosure that user inputs are sent over the network.

Static analysis

No suspicious patterns detected.