Password Generator

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: password-generator Version: 1.1.0 The skill accurately implements its stated purpose: generating a random password and saving it to a markdown file within the agent's designated memory directory (`/root/.openclaw/workspace/memory/passwords.md`). There are no signs of data exfiltration, malicious execution, persistence mechanisms, or prompt injection attempts in SKILL.md. All file operations are confined to the agent's workspace and are consistent with the skill's functionality.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A generated password may remain readable in local agent memory after the task, increasing the chance that future tasks, users, or tools could expose it.

Why it was flagged

The script persistently appends generated passwords in plaintext to a workspace memory file. Passwords are sensitive credentials once used, and the artifacts do not provide opt-out, encryption, retention limits, or cleanup guidance.

Skill content
memory_dir = '/root/.openclaw/workspace/memory' ... new_entry = f"""\n## {date}\n\n- **随机密码**\n  - 密码: `{password}` ...""" ... with open(password_file, 'a') as f: f.write(new_entry)
Recommendation

Do not store generated passwords in memory by default. Show the password once, or require explicit user confirmation before saving; if saving is needed, use a dedicated password manager or encrypted storage.

What this means

Users may trust the output as a secure account password when the generation method is weaker than expected for password security.

Why it was flagged

The skill is described as generating secure passwords, but the implementation uses Python's general-purpose `random` module rather than a cryptographic generator such as `secrets`. It also samples from a combined character pool, so it does not guarantee every advertised character class appears.

Skill content
import random ... length = random.randint(min_length, max_length) ... password = ''.join(random.choice(chars) for _ in range(length))
Recommendation

Use Python's `secrets` module, such as `secrets.choice`, and explicitly enforce required character classes if the skill claims every class is included.