Back to skill

Security audit

memory-checkup

Security checks across malware telemetry and agentic risk

Overview

This is a local memory-audit skill, but users should know it also reads a couple of agent-state files beyond the main memory files described in the skill text.

Install only if you are comfortable with a local audit script reading the workspace memory files plus root AGENTS.md and HEARTBEAT.md. Run it on workspaces you intend to audit, review its findings before allowing edits, and confirm current facts from live evidence before updating memory.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/memory_checkup.py:68
Finding
Undocumented Access to Additional Agent State Files## Vulnerability Details **File Location**: `scripts/memory_checkup.py`, lines 68–72 **Vulnerability Type**: Least-privilege scope violation **Risk Level**: Medium ### Vulnerable Code ```python for name in ("MEMORY.md", "USER.md", "AGENTS.md", "HEARTBEAT.md"): p = memory_dir / name if p.exists(): files[name] = p.read_text(encoding="utf-8", errors="replace") ``` ### Technical Analysis The skill documentation defines the audited memory corpus as `MEMORY.md`, `USER.md`, and Markdown files under `memory/`. The implementation silently expands that scope by also reading `AGENTS.md` and `HEARTBEAT.md`. These additional files may contain Agent instructions, operational state, workflow configuration, or other sensitive contextual information unrelated to the stated memory-consistency task. Reading them by default violates least-privilege principles because the skill accesses more Agent state than its documented purpose requires. The retrieved content is processed only by local consistency checks. The audit found no network transmission, subprocess execution, persistence, or destructive use of this data, which limits the severity. ### Attack Path 1. An Agent workspace contains sensitive instructions or operational information in `AGENTS.md` or `HEARTBEAT.md`. 2. A user invokes the skill to audit the documented memory corpus. 3. The workspace root is supplied through `--memory-dir`. 4. `load_files()` automatically detects and reads both additional files without separate disclosure or consent. 5. Their contents enter metric, path-reference, and orphan-analysis processing and may influence generated findings. No path to remote disclosure or arbitrary code execution was identified. ### Impact Assessment The skill obtains read access to two categories of Agent state beyond its documented scope. The effective privileges are limited to the permissions of the process running the script, and the affected scop ...[truncated 327 chars]
Remediation
## Remediation Suggestions 1. Restrict default scanning to the documented corpus: ```python for name in ("MEMORY.md", "USER.md"): p = memory_dir / name if p.exists(): files[name] = p.read_text(encoding="utf-8", errors="replace") ``` 2. If auditing `AGENTS.md` or `HEARTBEAT.md` is necessary, require explicit opt-in command-line flags such as `--include-agents` and `--include-heartbeat`. 3. Display the complete scan scope before reading files, particularly when additional operational files are enabled. 4. Update `SKILL.md` and both README files if the broader scope is an intentional product requirement. 5. Add tests verifying that default execution never opens files outside the declared corpus. 6. Consider accepting an explicit allowlist of files and rejecting paths outside the resolved workspace root.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Vague Triggers

Medium
Confidence
90% confidence
Finding
The README states the skill may trigger not only on explicit requests like "check my memory" but also when "answering from memory feels risky because facts may have drifted," which is subjective and broad. Ambiguous activation conditions can cause the skill to run in situations the user did not clearly request, increasing the chance of unnecessary file scanning or workflow interruption.

VirusTotal

63/63 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.