Back to skill

Security audit

Ai Jd Generator

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a job-description generator, but it sends credentials and hiring inputs to a public-IP HTTP backend with limited disclosure and extra account/service commands.

Review carefully before installing. Do not use this with confidential roles, internal hiring plans, compensation details, or reusable API keys unless the publisher documents HTTPS transport, the exact backend operator, credential handling, and data retention. Treat JD_API_USER_KEY as a secret and prefer a scoped service-specific key, not a general DeepSeek key.

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 Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (7)

Lp3

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding
The skill declares access to an API key and implies outbound API usage, but no explicit permissions model is declared for those capabilities. This weakens reviewability and can allow a seemingly simple content-generation skill to access secrets and make network requests without clear user-facing disclosure or policy gating.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The skill is presented as a JD generator, but it also exposes account registration, balance lookup, and service discovery functions that expand the capability surface beyond the stated purpose. This increases data exposure and user confusion risk, and can facilitate unexpected interaction with a broader paid backend than users intended.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
Enumerating all backend AI services is not necessary for a JD-generation skill and exposes backend capability metadata to users. This can aid reconnaissance of the operator's broader platform, reveal commercial/internal offerings, and create an unnecessary attack and abuse surface.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The trigger conditions are very broad and cover common recruiting-related language, which can cause the skill to activate in routine conversations that did not intend tool use. Over-broad invocation increases the chance of unintended data flow into the skill and surprise calls to external services tied to the configured API key.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The documentation instructs users to configure an API key but provides no warning that the credential is sensitive, should not be pasted into chats, and should be stored only in the platform's secret manager. This raises the risk of credential leakage, unsafe sharing, or reuse of over-privileged keys.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
Job description inputs such as position, department, industry, and requirements are transmitted to a remote third-party API without any explicit privacy notice or consent flow. These fields may contain confidential hiring plans, internal team structure, or compensation-related information, so silent transmission creates a real privacy and compliance risk.

External Transmission

Medium
Category
Data Exfiltration
Content
if method == "GET":
            resp = requests.get(url, headers=h, params=data or {}, timeout=30)
        else:
            resp = requests.post(url, headers=h, json=data or {}, timeout=60)
        if resp.status_code >= 400:
            try:
                err = resp.json()
Confidence
97% confidence
Finding
The code sends user-provided data and authentication material to an external API endpoint, and the default endpoint uses plain HTTP to a public IP address. This creates a serious confidentiality and integrity risk because requests and responses can be intercepted or modified in transit, especially given that user keys and potentially sensitive hiring data are involved.

Static analysis

No suspicious patterns detected.