Back to skill

Security audit

recruitment-fullstack-v4

Security checks for vulnerabilities and agentic risk

Overview

This recruiting skill is mostly purpose-aligned, but it contains a job-evaluation question about family or partner support and an unreadable corrupted final-decision package, so users should review it before use.

Use only with authorized recruiting data, remove the family/partner-support question before interviewing candidates, and do not rely on the corrupted final-decision package until it is re-encoded and reviewed. Treat outputs as decision support requiring human HR/legal review, not as an automatic hiring decision.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

other

Warning
Location
packages/04-questionbanks.md:405
Finding

Privacy-Invasive Candidate Profiling Through Family and Partner Information

Content
View full analysis

Vulnerability Details

File Location: packages/04-questionbanks.md:405
Vulnerability Type: Privacy-invasive candidate profiling
Risk Level: Medium

Complete Vulnerable Snippet:

markdown
| TR10 | 家人 / 伴侣支持你转行吗?(如有) | 稳定性 | 家人强烈反对且无独立判断 |

English translation:

text
TR10: Does your family or partner support your career change, if applicable?
Assessment dimension: Stability
Red flag: Strong family opposition and a lack of independent judgment

Technical Analysis

The interview question solicits private information about a candidate's family or partner and explicitly uses the response as a negative employment-evaluation signal. This is unrelated to whether the candidate can perform the role and may introduce relationship-status, family-status, and socioeconomic bias into recruitment decisions.

The instruction directly contradicts the Skill's global privacy rules:

  • SKILL.md:77 prohibits evaluating or reporting family members, income, and social relationships.
  • packages/01-framework.md:122 repeats the same prohibition and requires such information to be ignored even when candidates disclose it voluntarily.

Because the question bank labels family opposition as a red flag for “stability,” an Agent following the question bank may incorporate prohibited private information into interview scoring, calibration, and final hiring decisions. The resulting rationale may subsequently be preserved in candidate records through the calibration workflow.

Attack Path

  1. A user requests an interview plan or evaluation for a career-change candidate.
  2. The Skill routes the request to the career-change question bank.
  3. The Agent asks question TR10 about the candidate's family or partner.
  4. The candidate discloses private relationship or family information.
  5. The Agent treats family opposition as a negative stability signal.
  6. The signal influences the interview report, calibr ...[truncated 1008 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove question TR10 and its family-opposition red-flag criterion.

  2. Replace it with a strictly job-relevant question, such as:

    text
    What practical challenges do you anticipate during this career transition, and how do you plan to manage them?
    
  3. Prohibit questions and scoring criteria concerning family members, partners, marital status, caregiving circumstances, household income, or social relationships.

  4. Add an automated policy check that scans question banks, report templates, scoring criteria, and calibration notes for prohibited private attributes before use.

  5. Require reviewers to verify that every stability assessment is supported only by job-relevant evidence, such as the candidate's stated plans, demonstrated preparation, and employment history.

  6. Remove prohibited information from generated reports and candidate records. If such information has already been collected, apply the organization's deletion and access-control procedures.

  7. Add an explicit precedence rule stating that the global privacy restrictions override every downstream question bank and evaluation template.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (16)

Hidden Instructions

High
Category
Prompt Injection
Confidence
83% confidence
Finding

The hidden-instructions finding is supported by the presence of an invisible character/BOM at the beginning of the file. Invisible characters can change parsing behavior, conceal content from human reviewers, or interfere with exact-match policy and security scanning, which is risky in agent-controlled skill files.

Content

Scanner excerpt · packages/07-final-decision.md (reported line 1)May include surrounding context.

md
---
name: recruitment-final-decision
section: 阶段 4 · 最终推荐决策
depends_on:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill description and usage instructions are written entirely in Chinese, with no indication that other languages are supported or that the user can choose their preferred language. This can violate a language/locale policy when a skill implicitly requires one language without explicit opt-in or documented regional justification.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation phrases are broad enough to match ordinary recruiting requests such as screening resumes or evaluating candidates, which can cause the skill to trigger when the user did not explicitly request this workflow. In a hiring context, unintended activation can lead to unrequested processing of sensitive candidate data and generation of consequential recommendations without clear user consent or scoping.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill metadata and framework are explicitly authored in Chinese and define section labels and operating context in that locale, which can force a non-user-selected language experience. In a user-facing hiring workflow, this can cause misinterpretation of instructions, reduce accessibility for non-Chinese-speaking users, and lead to incorrect execution of recruitment steps or compliance controls.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The operational instructions, examples, checklists, and compliance rules are provided only in Chinese, with no alternative language or user choice mechanism. Because this is a core framework that downstream packages must inherit, the language restriction propagates system-wide and can cause users or operators to misunderstand hiring rules, evidence requirements, or prohibited factors.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest-style header and subsequent operational instructions are written entirely in Chinese, and the skill does not indicate that users may choose another language or locale. Under the language/locale policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Natural-language policy violations include forcing a specific language without user opt-in. This file's headings, field values, and operational instructions are written in Chinese, and there is no statement that users may choose another language or that the skill is intentionally limited to a Chinese-language context.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The scope describes the package broadly as a general content-generation engine that transforms multiple upstream inputs into interview scripts, but it does not define clear invocation triggers, refusal conditions, or out-of-scope boundaries for unsafe or irrelevant requests. In an agent setting, this can cause over-broad activation and unintended use in contexts the author did not mean to support, increasing the chance of misrouting, prompt collisions, or generation based on incomplete inputs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file consistently presents operational instructions and interview content only in Chinese, including the section title and all guidance text. Under the policy rule for natural-language violations, forcing a specific language without user opt-in is a reportable issue unless the locale restriction is explicitly justified, which is not stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is written entirely in Chinese and structurally assumes Chinese-language operation without any user opt-in or locale negotiation. In a general-purpose agent environment, this can override user expectations, degrade comprehension, and cause downstream hiring decisions to be made from misunderstood instructions or partially translated evaluation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

This markdown skill is written entirely in Chinese, including section names, instructions, templates, and checklists, with no indication that users may choose another language or locale. Under the policy, a skill that effectively requires a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
97% confidence
Finding

The file contains strong signs of mojibake/encoding corruption and mixed-script Unicode at the very start and throughout the document. In an agent skill, corrupted Unicode can hide instructions, alter meaning, or cause downstream parsers and reviewers to misread policy text, making the skill harder to audit safely.

Content

No source excerpt is available for this finding.

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
93% confidence
Finding

The repeated decorative garbled glyphs consume context budget without adding operational value. In an LLM skill, this can crowd out salient instructions and evidence, increasing the chance that safety constraints or important hiring criteria are truncated or deprioritized.

Content

Scanner excerpt · packages/07-final-decision.md (reported line 67)May include surrounding context.

鏍囧噯鍏紡锛堥€傜敤浜庣粷澶у鏁板矖浣嶏級

text
鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺?缁煎悎鍒嗭紙0-5锛?
  绠€鍘嗗姞鏉冨垎 / 3 脳 5 脳 0.15 [绠€鍘? 15%]
  + 闈㈣瘯 BARS 缁煎悎鍒?脳 0.60 [闈㈣瘯: 60%]
  + 杩介棶娣卞害璇勫垎 / 4 脳 5 脳 0.10 [杩介棶娣卞害: 10%]

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
93% confidence
Finding

A second block of repeated mojibake-like filler appears immediately after the scoring formula, again wasting context window space. When combined with the file's already large size, this increases the risk of instruction loss, parser confusion, and incomplete model attention to critical content.

Content

Scanner excerpt · packages/07-final-decision.md (reported line 72)May include surrounding context.

md
+ 闈㈣瘯 BARS 缁煎悎鍒?脳 0.60 [闈㈣瘯: 60%]
  + 杩介棶娣卞害璇勫垎 / 4 脳 5 脳 0.10 [杩介棶娣卞害: 10%]
  + 鏂囧寲鍖归厤璇勫垎 脳 0.10 [鏂囧寲鍖归厤: 10%]
鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺?
娉細
鈥?绠€鍘嗗垎鍘熸湰 0-3锛屽綊涓€鍖栧埌 0-5
鈥?杩介棶娣卞害鍘熸湰 0-4锛屽綊涓€鍖栧埌 0-5

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown skill includes mandatory decision prompts such as "Can they do the job?", "Will they do the job?", and "Affordable & retainable?" embedded in an otherwise Chinese-language workflow. That imposes a specific language format on users without any documented opt-in or locale choice, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

All user-facing instructions, examples, trigger phrases, and outputs are specified in Chinese, with no indication that the user may choose another language. This can violate a language/locale policy when a skill implicitly forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.