Back to skill

Security audit

UK Resume Analyzer & Optimizer

Security checks for vulnerabilities and agentic risk

Overview

This resume skill processes local resume files and writes local analysis/output files, with no evidence of hidden network access, persistence, privilege escalation, or destructive behavior.

Install only if you are comfortable with resume contents being written to local JSON, .docx, and optional backup files. Review and delete intermediate files when finished, and do not expect real Word tracked changes or native Word comments from the current implementation.

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
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
89% confidence
Finding

This second mismatch finding indicates the declared skill behavior is materially broader than the actual implementation, including absent resume-vs-JD analysis, ATS scoring, keyword generation, and revised .docx output. Such overclaiming can cause dependent systems to skip needed checks or route sensitive user documents into a pipeline that does not deliver the expected security or functional guarantees.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This second mismatch finding indicates the declared skill behavior is materially broader than the actual implementation, including absent resume-vs-JD analysis, ATS scoring, keyword generation, and revised .docx output. Such overclaiming can cause dependent systems to skip needed checks or route sensitive user documents into a pipeline that does not deliver the expected security or functional guarantees.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill instructs use of local scripts that read and write files, but it does not declare any explicit tool scope or permissions. This creates an authorization and review gap: an agent may be induced to access or modify user files without clear policy boundaries, which is especially sensitive for resumes and generated documents containing personal data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description says the skill provides resume analysis and optimization specifically 'for UK job market.' Under the policy rule, forcing a specific locale without user opt-in is a natural-language policy violation unless the regional restriction is clearly justified, which is not provided here.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest says the skill can generate an improved version of the resume with tracked changes and annotations and supports .docx input/output. In this implementation, the code only analyzes parsed resume JSON plus optional JD text and writes an analysis_report.json; there is no resume rewriting, annotation, change tracking, or .docx handling.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The CLI usage and file operations show the script expects a parsed_resume.json input, an optional jd.txt, and emits a JSON report. No code parses or writes .docx documents, which is a direct mismatch with the manifest's stated file format support.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module docstring says it will 'Generate optimized resume with Word comments explaining changes,' which implies native Word comment functionality. However, the implementation explicitly notes that native comments are unsupported and instead appends visible inline text markers to paragraphs, so the documentation overstates what the script does.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The add_comment function's docstring states 'Add a comment to a paragraph,' but the code does not create a Word comment object. Instead, it appends a new run containing '[COMMENT: ...]' directly into the paragraph body, which changes visible document content and is materially different from a comment.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This code saves an optimized resume document to the user-specified output path, which is a file write involving sensitive personal information. Although the CLI prints a success message after saving, there is no prior warning, confirmation, or explanatory comment at the point of execution informing the user that resume data will be written to disk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

When --backup is provided, the script creates a duplicate of the original resume file, which increases the number of stored copies of sensitive personal data. The code reports success afterward, but it does not provide any advance disclosure or caution that a full backup of the resume will be created on disk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The script writes parsed resume content, including potentially sensitive personal data, to a JSON file on disk by default without any consent prompt, minimization, or retention controls. In the context of a resume analyzer, this is especially risky because resumes commonly contain names, contact details, employment history, and other personal information that may be exposed through shared workspaces, backups, logs, or leftover temporary files.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The document is explicitly framed as 'UK Professional Resume Templates' and repeatedly mandates UK-specific formatting and conventions such as postcode usage, UK grading terms, and UK resume norms. Under the stated policy, forcing a locale-specific format without offering user choice or opt-in is a natural-language policy violation unless clearly documented as a justified region-specific tool.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.