Back to skill

Security audit

更适合中国宝宝体质的全程求职陪跑skill

Security checks for vulnerabilities and agentic risk

Overview

This job-search helper is mostly coherent, but it automatically keeps persistent plaintext records of sensitive career and interview data without clear user consent or cleanup controls.

Install only if you are comfortable with the skill maintaining a persistent local job-search profile. Before using it, decide where those files will live, review and delete memory files when needed, avoid storing unnecessary salary or interview-sensitive notes, and sanitize generated HTML resumes or prefer PDF/static output before sharing them.

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

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:40
Finding

Mandatory Plaintext Persistence of Sensitive Candidate Data

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
assets/resume-template.html:239
Finding

Unescaped Candidate Data and Unvalidated URLs in Generated Resume HTML

Content
View full analysis
{{PROFILE_SUMMARY}} Highlight the strongest matches between the candidate and the target position. Use highlighted keywords for skills and experiences that directly address the position requirements.

``` ```html
{{PROJECT_NAME}} {{PROJECT_URL_DISPLAY}}

{{PROJECT_DESCRIPTION}}

``` ### Technical Analysis The template places generated or candidate-controlled values directly into both HTML text contexts and an `href` attribute. The project contains no requirement to HTML-escape text placeholders, attribute-escape URL placeholders, or validate URL schemes. If the substitution process preserves markup, values such as `PROFILE_SUMMARY`, `PROJECT_NAME`, or `PROJECT_DESCRIPTION` can terminate their intended context and introduce active HTML. A malicious `PROJECT_URL` can also use a dangerous scheme such as `javascript:` and execute when the link is activated. For example, unescaped text could contain an image element with an external source, causing an outbound request when the document opens. A crafted project URL could invoke script when a viewer clicks it. Exploitability depends on the resume-generation implementation inserting the supplied value without contextual encoding, which is the behavior implied by direct placeholder replacement. ### Attack Path 1. An attacker supplies a resume, profile, or project description containing crafted HTML or a dangerous project URL. 2. The Agent extracts the value and uses it when replacing the templ ...[truncated 945 chars]
Remediation
View remediation

other

Note
Location
assets/resume-template.html:8
Finding

Generated Resumes Automatically Load a Third-Party Web Resource

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (13)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill mandates reading and updating a persistent MEMORY.md containing sensitive candidate data such as name, school, job targets, interview history, weaknesses, and application progress across sessions. This creates a privacy and retention risk because the user is not clearly warned, consent is not requested, and the scope of stored personal data is broader than strictly necessary for many interactions.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/resume-template.html (reported line 219)May include surrounding context.

html
<body>
<div class="page">

  <!-- ===== PLACEHOLDER STRUCTURE ===== -->
  <!-- Replace all {{VARIABLES}} with actual candidate data -->
  <!-- Reorder sections based on target position relevance -->

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/resume-template.html (reported line 223)May include surrounding context.

html
<!-- Replace all {{VARIABLES}} with actual candidate data -->
  <!-- Reorder sections based on target position relevance -->

  <!-- Header -->
  <div class="header">
    <div>
      <div class="name">{{CANDIDATE_NAME}}</div>

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/resume-template.html (reported line 256)May include surrounding context.

html
</div>
  </div>

  <!-- Experience — ORDER: most relevant first -->
  <div class="section">
    <div class="section-title">实习经历</div>

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest says the skill triggers when users mention broad intents like “找工作”, “面试准备”, and quoted phrases like “帮我找工作”. These are common conversational requests and the file does not provide boundaries, exclusions, or negative examples to distinguish when this skill should activate versus a general assistant response.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The “触发条件” section enumerates many generic intents such as “投递”, “内推”, and “自我介绍”, which can arise in many ordinary conversations. There is no explanation of what should not trigger the skill, so invocation scope is still too broad and may cause unintended activation.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The cross-session memory requirement operationalizes continuous collection and updating of sensitive candidate records across runs, including progress tracking, weaknesses, and interview notes. In a job-search context, this is especially sensitive because it can reveal identity, career intentions, rejection history, and behavioral assessments, all of which could be misused if retained without clear consent and controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill directs creation of cv.md and config/profile.yml with personal profile information, including target direction, city preference, salary expectation, job stage, and graduation year, without a user-facing privacy notice. Persisting these structured files increases the chance of unintended retention, secondary use, or exposure of personally identifying and career-sensitive information.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The statement “默认中国校招适配” establishes a default regional and hiring-market orientation. Although the file mentions compatibility with other regions earlier, it does not clearly offer users a choice before defaulting to a specific locale context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The document declares lang="zh-CN", which forces a specific locale by default. Under the policy, locale constraints should either be optional for the user or clearly justified as region-specific; this file provides no opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The title suffix 简历 and multiple section headings later in the file are fixed in Chinese, which semantically enforces a specific language choice. Because the template does not offer an alternative language selection or document a justified regional scope, this is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The entire skill document is written in Chinese and prescribes report content and evaluation outputs in Chinese-formatted terms without indicating that users may choose another language or locale. Under the policy, forcing a specific language without user opt-in is a natural-language locale constraint that should be documented or made optional.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

This markdown file contains user-facing instructional content exclusively in Chinese, and there is no indication that language selection is optional or that the locale restriction is intentional. Under the stated 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.

Static analysis

No suspicious patterns detected.