Back to skill

Security audit

51mee Resume Match

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it says, but it sends candidate resumes and job descriptions to a third-party API without built-in consent or privacy safeguards.

Install only if your organization is comfortable sending resumes and job descriptions to openapi.51mee.com. Before use, confirm candidate and organizational permission, remove unnecessary personal details where possible, and verify the provider's privacy, retention, deletion, and compliance terms.

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

Error
Location
SKILL.md:13
Finding

Unprotected Disclosure of Resume Data to a Third-Party Service

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 13-28 and 153-160
Vulnerability Type: Uncontrolled transmission of sensitive personal data to an external service
Risk Level: High

Vulnerable Code

bash
curl -X POST "https://openapi.51mee.com/api/v1/parse/match" \
  -F "file=@候选人简历.pdf" \
  -F "jd_text=岗位职责:\n1. 负责系统架构设计\n\n任职要求:\n- 5年以上Java开发经验\n- 熟悉Spring Boot"

The batch-processing workflow also directs the agent to invoke the external matching interface for every candidate:

markdown
1. **定义岗位要求** - 收集完整的职位描述
2. **逐个匹配** - 对每个候选人调用匹配接口
3. **对比排序** - 按 `overall_score` 排序
4. **输出报告** - 生成排名对比表

Technical Analysis

The skill directs the agent to upload complete resume files and job descriptions to https://openapi.51mee.com/api/v1/parse/match. Resumes commonly contain sensitive personal information, including names, telephone numbers, email addresses, home addresses, employment histories, education records, salary expectations, and other identifying information.

Although the endpoint uses HTTPS, transport encryption alone does not provide adequate privacy controls. The skill does not require:

  • Explicit user confirmation before transmitting a resume.
  • Confirmation that the candidate authorized third-party processing.
  • Disclosure of the external recipient before upload.
  • Redaction or minimization of unnecessary personal information.
  • Review of the provider's retention, deletion, jurisdiction, and secondary-use policies.
  • Restrictions against logging resume contents or API responses.
  • An approved or configurable enterprise endpoint.

The batch-processing workflow increases the scope because it instructs the agent to upload every candidate's resume individually. This can turn a single unconfirmed disclosure into a bulk personal-data exposure.

Attack Path

  1. A user provides one or more candidate resumes for job matching.
  2. The agent follows the ski ...[truncated 1505 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit, informed confirmation immediately before each external upload. The confirmation should identify the destination domain and the categories of data being transmitted.
  2. Require the user to confirm that each candidate has authorized resume processing by the external provider.
  3. Apply data minimization before transmission. Remove contact details, addresses, identification numbers, photographs, and unrelated personal information unless strictly necessary.
  4. Prefer extracting only job-relevant attributes locally and transmitting those attributes instead of the complete source document.
  5. Document and validate the provider's privacy policy, data-retention period, deletion mechanism, processing jurisdiction, access controls, subprocessors, and restrictions on secondary use.
  6. Make the endpoint configurable and restrict it to an organizational allowlist of approved services.
  7. Provide a local-processing option for resumes that cannot be shared externally.
  8. Prohibit logging of uploaded files, multipart request bodies, sensitive response fields, and candidate identifiers.
  9. Add explicit batch-processing safeguards, including a preview of affected candidates, a single informed approval covering the stated batch, per-file minimization, and an abort mechanism.
  10. Define a deletion procedure through which submitted data and derived results can be removed from the provider after processing.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs users to upload resumes and job descriptions to an external API, which likely contain personal data, compensation details, and internal hiring information, but it does not clearly warn about privacy, data transfer, retention, or third-party processing risks. In a recruitment context, this omission is significant because users may unknowingly transmit sensitive candidate and business data outside their trust boundary.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The trigger description is broad enough that the skill could activate during general hiring discussions, causing unintended resume/JD processing or external API use without clear user intent. In this skill, that matters because activation may lead to third-party transmission of sensitive HR data, making even a low-severity trigger issue more consequential than in a purely local informational skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.