Back to skill

Security audit

Vedic Horoscope

Security checks for vulnerabilities and agentic risk

Overview

This skill is a real horoscope API integration, but it requires and sends a broad personal profile to an external service without enough privacy, retention, or access-control disclosure.

Install only if you are comfortable sending the subject's full name, phone number, parents' names, gender, exact birth time, and birthplace to the external mkkpro.com service, and treat generated PDF links as potentially retained remotely unless the provider documents access controls and deletion. Ask the publisher to make nonessential identifiers optional and publish privacy, retention, and download-security details.

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
openapi.json:153
Finding

Excessive Collection and External Processing of Personal and Family Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:84-96, SKILL.md:142-145, openapi.json:153-181, openapi.json:225-238
Vulnerability Type: Excessive collection and external processing of personally identifiable information
Risk Level: Medium

The horoscope-generation operation requires users to provide a mobile number, both parents' names, a full name, and detailed birth information. Although birth date, time, and location are relevant to horoscope calculations, the reviewed documentation does not establish why the mobile number and parents' names are necessary. The data is submitted to an externally hosted API.

Vulnerable Code Snippets

SKILL.md:84-96:

markdown
**Request Body:**
- `person_name` (string, required) - Person's full name
- `father_name` (string, required) - Father's name
- `mother_name` (string, required) - Mother's name
- `mobile` (string, required) - 10-digit mobile number
- `gender` (string, required) - Male or Female
- `dob` (string, required) - Date of birth in DD/Mon/YYYY format
- `hour` (string, required) - Birth hour (1-12)
- `minute` (string, required) - Birth minute (00-59)
- `am_pm` (string, required) - AM or PM
- `country` (string, required) - Country code
- `birth_place` (string, required) - Birth city name
- `language_id` (string, optional, default: "1") - Language ID (1=Tamil)
- `chart_type` (string, optional, default: "South Indian") - Chart type (South Indian or North Indian)

openapi.json:153-181:

json
"person_name": {
  "type": "string",
  "title": "Person Name",
  "description": "Person's full name"
},
"father_name": {
  "type": "string",
  "title": "Father Name",
  "description": "Father's name"
},
"mother_name": {
  "type": "string",
  "title": "Mother Name",
  "description": "Mother's name"
},
"mobile": {
  "type": "string",
  "title": "Mobile",
  "description": "10-digit mobile number"
},
"gender":
...[truncated 3079 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove mobile, father_name, and mother_name from the required fields unless a documented and necessary business requirement exists.
  2. Restrict the default request to the minimum horoscope-calculation inputs, such as birth date, birth time, birthplace, and chart preferences.
  3. Make nonessential identity fields optional and explain the precise purpose of every collected field.
  4. Present an explicit privacy disclosure before transmission, identifying the external processor, processing purpose, retention period, deletion procedure, and applicable user rights.
  5. Obtain affirmative user consent before sending personal or family information to the external service.
  6. Define authentication and authorization requirements in the OpenAPI specification and restrict access to generated documents.
  7. Use short-lived, unguessable, access-controlled download URLs rather than predictable or identity-derived filenames.
  8. Prevent sensitive fields from appearing in application logs, analytics, error messages, queue metadata, and generated filenames.
  9. Encrypt personal data in transit and at rest, establish retention limits, and provide a deletion mechanism.
  10. Document and enforce input length, format, and enumeration constraints to reduce malformed input and unnecessary data collection.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The example response shows a downloadable PDF hosted on an external domain, confirming that generated horoscope content and associated identifiers are stored and served by a third-party service. Given the skill's data sensitivity, this external transmission increases exposure risk, especially if users are not warned that personal birth data and derived reports leave the local environment.

Content

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

{ "success": true, "message": "Horoscope generated successfully", "pdf_url": "https://api.mkkpro.com/downloads/horoscope_rajesh_1234567890.pdf", "generated_at": "2024-01-15T10:45:30Z" }

text

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill collects and transmits highly sensitive personal data including full name, parents' names, phone number, date/time of birth, and location, but the documentation provides no privacy warning, consent guidance, retention policy, or disclosure of third-party processing. In this context, users may unknowingly expose personal and profiling data to an external service, increasing privacy, compliance, and misuse risks.

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 144)May include surrounding context.

md
## References

- **Kong Route:** https://api.mkkpro.com/lifestyle/vedic-horoscope
- **API Docs:** https://api.mkkpro.com:8159/docs

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The OpenAPI metadata states the backend 'generates and executes horoscope automation scripts,' which expands the documented capability beyond passive horoscope generation into script execution. In an agent-integrated skill, undocumented or unnecessary execution capability materially increases the attack surface because user-influenced inputs may eventually drive backend automation or code-like workflows.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

A horoscope-generation skill has no obvious need to execute automation scripts, so this mismatch between declared purpose and backend capability is a security concern. Purpose/capability mismatch is dangerous because it can hide secondary functionality that may be abused for unintended operations or become a pivot for broader compromise if exposed through the agent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The description claims the service executes automation scripts but provides no constraints on what can be executed, under what conditions, or how input is validated. Broad, unconstrained execution language is risky because it suggests hidden or weakly governed behavior that could enable abuse, especially when the API accepts extensive user-supplied personal data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The request schema sets language_id to default to 1 and documents that as Tamil, which imposes a locale/language choice without indicating user consent or an explicit opt-in path. This matches the policy concern for language or locale constraints embedded in natural-language descriptions or config values.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill claims to support multiple languages, but the documented request parameter defaults to language_id value 1, defined as Tamil, without stating that the user should choose or consent to that locale. This can cause responses in a specific language by default, which is a language-policy concern when no opt-in is described.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.