Memory Poison Auditor

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

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

Running clean --apply can change memory files and remove blocks the auditor considers suspicious.

Why it was flagged

The clean mode can mutate scanned memory files, but the separate --apply flag makes the rewrite explicit and user-directed.

Skill content
clean_parser.add_argument("--apply", action="store_true", help="Actually rewrite files after creating backups") ... actions = clean_blocks(paths, results, backups_dir)
Recommendation

Run scan first, review the report, confirm the target path, and verify backups before using clean --apply.

What this means

If configured, the skill can spend or use the provider account associated with ZENMUX_API_KEY.

Why it was flagged

Optional AI review uses a provider API key from the environment. This is purpose-aligned for external AI review, and there is no evidence of hardcoding or unrelated credential use.

Skill content
api_key = os.environ.get("ZENMUX_API_KEY") ... "x-api-key": api_key
Recommendation

Only set the API key if you want external AI review, and prefer a revocable, least-privilege provider key.

What this means

Local reports may duplicate sensitive memory content and could be misread later if treated as trusted context rather than audit evidence.

Why it was flagged

Reports persist excerpts of scanned memory blocks, which may include private content or the very poisoned text being audited.

Skill content
"text": item["block"].text[:400], ... report_path = write_report(serializable_bundle, reports_dir)
Recommendation

Store reports in a controlled location, delete unneeded reports/backups, and treat quoted memory excerpts as untrusted evidence.

What this means

Potentially sensitive memory excerpts may leave the local machine for provider review.

Why it was flagged

When optional AI review is used, memory block text and metadata can be sent to an external Zenmux/Anthropic-compatible API.

Skill content
base_url = os.environ.get("ZENMUX_ANTHROPIC_BASE_URL", "https://zenmux.ai/api/anthropic") ... "excerpt": block.text[: int(os.environ.get("MEMORY_AUDITOR_AI_MAX_CHARS", "10000"))]
Recommendation

Use --with-ai only when you are comfortable sending the selected memory excerpts to the configured provider, and document this data flow for users.