T01 · Skill Instruction Hijacking
- Location
mempalace/hooks/mempal_save_hook.sh:135- Finding
Lifecycle hooks inject mandatory system-level archive instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a real local memory archive tool, but it can automatically retain broad conversation and code content and has privacy/permission gaps users should review before installing.
Install only if you intentionally want a durable local archive of AI conversations and are prepared to manage privacy. Avoid enabling the Stop/PreCompact hooks or cron auto-save unless you explicitly want automatic capture; use a dedicated virtual environment with pinned dependencies; do not run mining on broad project directories that may contain secrets; and assume stored memories can later be surfaced verbatim to agents or tools. Treat Wikipedia/entity research as network disclosure of the exact researched term.
mempalace/hooks/mempal_save_hook.sh:135Lifecycle hooks inject mandatory system-level archive instructions
mempalace/layers.py:387Untrusted indexed content can be injected into future agent prompts
mempalace/entity_registry.py:179Wikipedia lookup transmits user-derived entity names despite local-only claims
mempalace/layers.py:374Default MemoryStack bypasses the Skill-local identity path
mempalace/miner.py:286Recursive mining can persist secrets and files outside the intended trust boundary
mempalace/requirements.txt:1First-run setup installs mutable dependencies into the active Python environment
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
Inferring rooms from local directories, prompting for approval/editing, and writing configuration files are setup behaviors that go beyond the advertised memory commands. This is risky mainly because it expands filesystem interaction and persists metadata in ways not obvious from the high-level description.
The skill markets itself as 'local only' and says 'nothing uploaded,' but later discloses outbound Wikipedia API requests. This is a direct trust-boundary violation: users may provide sensitive content under a local-only assumption, while the software performs network activity inconsistent with that claim.
Claiming that all data remains on the user's machine while also acknowledging outbound HTTP is materially misleading. In a data-retention skill, such contradictory statements are especially dangerous because they undermine informed consent around privacy and data exposure.
The hook explicitly instructs the AI to save all topics, decisions, quotes, code, and important context from the session before compaction, including verbatim quotes. In the context of a long-term memory/archive skill, this can cause wholesale exfiltration of sensitive session content into persistent storage without scoped consent, data minimization, or filtering for secrets, making privacy leakage and retention of credentials/PII much more likely.
The injected instruction explicitly tells the AI to save key topics, decisions, quotes, and code, including verbatim quotes where possible. That is dangerous because it encourages durable retention and reproduction of potentially sensitive user data, secrets, proprietary code, or personal information, with no filtering, minimization, or consent gate.
The README promotes persistent archival of AI conversations as a core feature, which creates a real data-retention risk because conversations commonly contain credentials, personal data, internal project details, and other sensitive material. Even with local-only storage, long-term accumulation increases exposure if the host is shared, compromised, backed up insecurely, or searched without proper filtering.
Automatic daily archiving increases risk because it normalizes ongoing background retention without clear per-archive consent or contextual review. In this skill context, the danger is higher than generic note-taking because the feature is specifically designed to capture AI conversations, which may include transient but highly sensitive user inputs that were never intended for durable storage.
The README advertises automatic daily archival of conversations but does not clearly warn users about privacy, retention duration, sensitive-content capture, or how to disable the behavior. In a memory/archive skill, this can cause users to unknowingly retain secrets, personal data, or regulated information on disk beyond the original conversation context.
The skill documentation describes capabilities equivalent to shell execution, file read/write, environment access, and network use, but it does not declare any tool scope or allowed-tools restrictions. That mismatch prevents users and the host from understanding or constraining what the skill can actually do, increasing the risk of over-privileged execution.
The manifest frames the skill as a local memory tool, but the setup instructions include runtime package installation from PyPI and modification of the Python environment. That creates an undeclared supply-chain and system-modification risk beyond what many users would expect from a local archive utility.
The trigger condition 'user wants to save, search or back up AI conversation memories' is broad enough that the skill may activate in many ordinary contexts involving memory, search, or backup discussion. Over-broad triggering is risky for a retention-oriented skill because it can cause unplanned data capture or execution of setup/install steps.
The skill explicitly promotes permanent archiving and searchable retention of conversations, which creates a real privacy and secondary-disclosure risk even if that is its intended purpose. In context, the danger is elevated because long-term semantic search can resurface sensitive user content far beyond the original session.
Runtime pip install from external sources grants the skill a broader capability than needed for a memory archive/search workflow and introduces supply-chain risk. It also means execution depends on mutable external artifacts at run time, making behavior less predictable and harder to audit.
The archive flow instructs reading workspace memory/ content, compressing it, and writing it into searchable storage. That creates a straightforward pathway for accidental collection of secrets, personal data, or sensitive project information if the source folder contains more than intended conversation summaries.
Wikipedia lookups are not necessary for the core stated function of archiving and semantically searching local conversation memories. Adding unnecessary network capability broadens the attack surface and weakens privacy guarantees without a compelling functional need.
The documentation normalizes recursive scanning of many file types and shifts responsibility to the operator to ensure no sensitive files are present. For a tool that builds searchable memory, this is dangerous because a single mis-scoped directory can ingest confidential content into durable indexed storage.
No suspicious patterns detected.