Back to skill

Security audit

HR面试评价助手

Security checks for vulnerabilities and agentic risk

Overview

This HR evaluation skill is mostly coherent, but it needs review because it can process sensitive candidate documents, extract contact details, and activate from broad file-name matches without clear consent.

Install only if users understand that resumes and interview notes may be parsed into structured data and exported into report files. Prefer requiring an explicit command before processing files, removing contact-info extraction, redacting unnecessary personal data, and confirming who may access generated PDF/PNG reports.

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
SKILL.md:411
Finding

Unnecessary Extraction and Processing of Candidate Contact Information

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 411-425
Vulnerability Type: Excessive processing of personally identifiable information
Risk Level: Medium

Vulnerable Code Snippet

The following is an English translation of the complete affected prompt:

text
Please extract candidate information from the following resume content:

Resume content:
{resume_text}

Extraction requirements:
1. Basic information (name, education, contact information)
2. Total years of work experience
3. Work history (company, position, dates)
4. Skills
5. Project experience
6. Educational background

Return the result in JSON format.

Technical Analysis

The resume-processing prompt explicitly directs the language model to extract the candidate's contact information. Contact details are not required by the documented five-dimensional scoring algorithm or hiring recommendation logic.

The workflow places the resume content into the model prompt through the {resume_text} interpolation and asks the model to return the extracted data in structured JSON. This increases the likelihood that unnecessary personally identifiable information will be retained in model context, structured candidate records, diagnostic logs, or downstream analysis.

The generic privacy reminder at line 453 does not define or enforce technical safeguards. The Skill does not specify local redaction, field allowlisting, consent verification, retention limits, deletion procedures, access controls, output filtering, or restrictions against including contact details in generated reports.

This is an insecure data-handling practice rather than evidence of intentional data theft. No external exfiltration endpoint or malicious transmission mechanism was identified.

Attack Path

  1. A user uploads a candidate resume containing a telephone number, email address, residential address, or other contact information.
  2. The document pars ...[truncated 1370 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove contact information from the extraction requirements because it is not needed for candidate scoring.
  2. Apply local redaction before sending resume text to a language model. Redact email addresses, telephone numbers, postal addresses, government identifiers, dates of birth, and other unnecessary identifiers.
  3. Use a strict allowlist for extracted fields, limited to job-relevant qualifications such as skills, experience duration, project history, and education level.
  4. Avoid extracting the candidate's name unless it is operationally necessary. Use a generated candidate identifier during evaluation where possible.
  5. Add output validation that rejects or removes contact information from structured model responses and generated reports.
  6. Require explicit authorization or consent before processing candidate documents through an external model provider.
  7. Define retention and deletion controls for source documents, parsed text, prompts, model responses, reports, temporary files, and application logs.
  8. Restrict access to evaluation artifacts according to least-privilege principles and prevent reports from being shared with unauthorized recipients.
  9. Document the model provider, processing location, retention behavior, and applicable privacy obligations.
  10. Add automated tests using synthetic PII to verify that sensitive fields are redacted before model invocation and excluded from all exported artifacts.
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 (3)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The description and primary invocation flow require Chinese trigger phrases and Chinese-language interaction, while no user opt-in or locale limitation is documented. Under the stated policy, forcing a specific language without choice can be a natural-language policy violation unless the regional constraint is explicit and justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The workflow invites users to upload resumes and interview records, which commonly contain PII, employment history, contact details, and subjective interview notes, but it does not prominently warn that these documents will be parsed and used to generate exportable PDF/PNG reports. That omission weakens informed consent and increases the chance of oversharing, mishandling, or wider redistribution of sensitive candidate data.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file-name trigger keywords are broad enough that ordinary uploads containing words like 'candidate', 'evaluation', '简历', or '面试' may auto-activate the skill without an explicit user request. In this skill’s context, that can cause sensitive HR documents to be parsed and transformed into reports unexpectedly, increasing privacy and consent risk.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.