Back to skill

Security audit

Ai Jd Generator

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a paid job-description generator, but it sends credentials and hiring details to an undisclosed plaintext HTTP backend and has material documentation and runtime mismatches.

Review before installing. Use only if you are comfortable sending hiring details and the configured JD_API_USER_KEY to the provider, and require the publisher to switch to HTTPS, disclose the backend/operator and transmitted fields, fix the documented command examples, declare dependencies, and repair the script syntax before use.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (5)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/jd_generator.py:10
Finding

API Credential and Recruitment Data Transmitted over Plaintext HTTP

Content
View full analysis
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
scripts/jd_generator.py:37
Finding

Commercial Content Injected into Operational Command Output

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/jd_generator.py:8
Finding

Undeclared and Unpinned Nonstandard HTTP Dependency

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/jd_generator.py:10
Finding

Undefined SKILL_ID Causes Import-Time Denial of Service

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:76
Finding

Documented Interface and Credential Description Do Not Match the Implementation

Content
View full analysis
Remediation
View remediation
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 (8)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill requires an environment secret (JD_API_USER_KEY) and appears to rely on networked API access, but it does not declare any explicit tool scope or permissions boundaries. This creates unnecessary ambiguity about what capabilities the skill may exercise at runtime and weakens reviewability, increasing the risk of secret misuse or unexpected outbound requests.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest description is entirely in Chinese and presents the skill as Chinese-language oriented, but it does not state that the skill is region-specific or offer language choice. Under the policy, a forced language or locale without opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation conditions are broad enough to trigger on normal recruiting or career discussions, not just clear requests to generate a job description. Over-broad triggering can cause unintended skill invocation, leading to unnecessary transmission of user-provided recruiting data to external services and reducing user control over when paid or networked functionality is used.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Nearly all natural-language strings, including the description, prompts, status messages, and argument help, are hard-coded in Chinese. This effectively forces a single language/locale experience without user opt-in or an explicit statement that the tool is intended only for Chinese-speaking users.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script transmits user-supplied job data and account identifiers to a remote backend API, including a hard-coded default host over plain HTTP, without any explicit privacy notice or transport-security guarantee. This creates risk of silent data exfiltration, interception of sensitive HR/recruiting data, and leakage of the user key in transit.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

The code sends data to an external backend using POST/GET requests, and the configured default API base is a raw IP address using HTTP rather than HTTPS. In the context of an HR-focused tool, transmitted position details, requirements, and account keys may be intercepted or redirected, making the external transmission materially dangerous.

Content

Scanner excerpt · scripts/jd_generator.py (reported line 24)May include surrounding context.

python
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()

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill is presented as a job-description generator, but it also exposes account registration, balance lookup, and a broader service-catalog API. This scope expansion means users may unknowingly interact with unrelated remote services and disclose identifiers or metadata beyond what is necessary for JD generation, violating least functionality and increasing attack surface.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The 'services' command enumerates a remote provider's full AI service catalog even though the advertised purpose is only generating job descriptions. This can expose internal or broader commercial capabilities to users without clear need, and it creates an unnecessary discovery surface for additional remote endpoints and data flows.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.