Back to skill

Security audit

sn-image-resume

Security checks for vulnerabilities and agentic risk

Overview

This resume-image skill appears purpose-aligned, but it handles sensitive resume data through external APIs and leaves plaintext resume material in predictable temporary files without clear user notice or cleanup.

Review before installing. Use it only if you are comfortable sending resume contents to the configured external model providers, and redact unnecessary personal details. Avoid using it on shared or multi-user machines unless the temporary-file handling is hardened or the runtime provides equivalent protections.

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:109
Finding

Predictable Temporary Storage Exposes Resume Data and Permits Symlink Attacks

Content
View full analysis
/` as `TEMP_DIR` 3. Persist normalized inputs: echo "$RESUME_CONTENT" > "$TEMP_DIR/resume-content.txt" echo "$STYLE" > "$TEMP_DIR/style.txt" ``` The generated prompt is also persisted: ```bash echo "$GENERATION_PROMPT" > "$TEMP_DIR/generation-prompt.txt" ``` ### Technical Analysis The temporary directory name is derived from a timestamp with one-second resolution and is therefore predictable. The workflow does not require secure, atomic directory creation, restrictive file permissions, symlink protection, ownership verification, or deletion after processing. Resume content commonly contains personally identifiable information such as names, email addresses, phone numbers, education history, employment history, and addresses. This information is written in plaintext to the shared `/tmp` hierarchy. The generated prompt may contain the same sensitive information. In a multi-user or otherwise untrusted local environment, an attacker who can write beneath `/tmp/openclaw/sn-image-resume` may predict a task identifier and pre-create the expected directory or output files. Because ordinary shell redirection follows symbolic links, a pre-created `resume-content.txt`, `style.txt`, or `generation-prompt.txt` symlink could redirect a write to another file writable by the worker account. The exact exploitability depends on permissions applied by the surrounding runtime. The documented workflow itself does not establish the controls needed to prevent this class of attack. ### Attack Path 1. A local attacker monitors or predicts when the resume-generation skill will run. 2. Th ...[truncated 1497 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 73)May include surrounding context.

md
: `$SN_IMAGE_BASE` is the installation directory of the `sn-image-base` skill (`SKILL.md` exists). The agent can locate this path by skill name `sn-image-base`.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · prompts/resume.md (reported line 16)May include surrounding context.

md
The final layout must clearly preserve this top-to-bottom reading flow.

# Language Detection and Output Rule

Before generating any output, first detect the primary language of the user’s input content.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill processes raw resume text that commonly includes highly sensitive personal data such as phone numbers, email addresses, employment history, education, and possibly physical location, then sends that content to external text and image generation APIs. Because the skill description and flow do not clearly warn users that this data leaves the local agent boundary, users may disclose sensitive information without informed consent, creating a privacy and compliance risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
76% confidence
Finding

The workflow instructs the system to follow fixed language rules in prompts/resume.md, but this skill file does not provide any user opt-in or language-selection mechanism. Because the referenced prompt governs language behavior, this may impose a specific language or locale without user choice, which matches the policy category for language or locale violations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This instruction sets a language default based on system behavior rather than explicit user choice. The policy allows locale behavior when the user is given a choice or the constraint is clearly justified, but here unclear-language cases are forced to English without opt-in.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
SKILL.md:241