T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/observe.sh:7- Finding
Broad Collection and Retention of Agent Memory Content
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is openly meant to personalize an agent, but it broadly scans private memory and persists a named user's profile and conversation snippets with weak consent and control boundaries.
Review before installing. Use only if you intentionally want durable local personality profiling, remove the shipped Eric profile and observations first, avoid cron until consent and review controls exist, and restrict scanning to user-approved files with deletion and correction procedures.
scripts/observe.sh:7Broad Collection and Retention of Agent Memory Content
scripts/adapt.sh:46Persistent Agent Behavior Rules Derived from Untrusted Conversation Signals
observations.json:10Plaintext Distribution of Identifiable Personal Conversation Data
SKILL.md:64Predictable Privileged Cron Log Files Permit Symbolic-Link Clobbering
scripts/adapt.sh:119Undefined Helper Causes the Adaptation Engine to Fail
scripts/observe.sh:2Documented Command-Line Options Are Parsed as Unsafe Positional Values
The documented workflow suggests observing 'who you are' from conversations and notes, but the broader behavior includes storing extracted observations locally and potentially processing assistant-generated content in addition to user data. That expands profiling scope beyond what a user would reasonably infer, creating elevated privacy and integrity risks.
The documented workflow suggests observing 'who you are' from conversations and notes, but the broader behavior includes storing extracted observations locally and potentially processing assistant-generated content in addition to user data. That expands profiling scope beyond what a user would reasonably infer, creating elevated privacy and integrity risks.
The skill describes ongoing observation of conversations and daily notes to build a lasting personality profile, but does not prominently warn about the sensitivity of this behavioral data or the privacy consequences of storing it over time. This weakens informed consent around continuous profiling and long-term retention of intimate personal patterns.
The skill explicitly references reading daily notes and writing PERSONALITY.md and observations.json, but declares no permissions or allowed-tools scope. That creates an authorization and transparency gap: the skill can access and persist sensitive user data without clearly bounded capabilities, increasing privacy and misuse risk.
Profiling the user's emotional state is sensitive inference data and is more invasive than ordinary preference adaptation. Inferring and storing mood, energy, or uncertainty can expose mental-state information that is not necessary for the stated purpose, increasing privacy harm if retained or misused.
The skill advertises automatic updates to profile files and cron-based scheduled execution, but does not clearly emphasize that it will modify files autonomously over time. Background persistence and unattended writes increase the chance of silent data accumulation, stale profiling, and unexpected changes to user-controlled files.
This entry stores a personality/value inference about the user based on assistant-authored text rather than direct user evidence. That creates inaccurate behavioral profiling and can cause the system to build and act on sensitive personal inferences the user never actually expressed, which is especially risky in a personality-adaptation skill.
This finding shows interests/preferences being inferred from assistant-generated content instead of user-provided evidence. In a skill designed to learn personality over time, this can poison the user model, leading to manipulative adaptation, incorrect personalization, and retention of sensitive profile data not actually derived from the user.
An emotional-state label is being attributed to the user even though the evidence comes from assistant text. Emotional-state inferences are particularly sensitive, and storing them on the basis of the model's own output can create false psychological profiling that affects future interactions and may expose the system to privacy and trust harms.
The top-level comment states this is an adaptation engine that reviews observations and updates the personality model. However, the update path later calls find_section_in_personality at L127, which is never defined in the embedded Python, so the script will fail before completing the documented update behavior when not in dry-run mode. This is an active contradiction between the documented intent and the actual executable behavior.
The script persistently rewrites PERSONALITY.md based on accumulated observations rather than limiting adaptation to ephemeral runtime behavior. In a personality-learning skill, this creates a durable profile that can be changed without an explicit approval step, increasing privacy risk and making unintended or adversarial observations stick across sessions.
The script writes directly to PERSONALITY.md without an interactive confirmation, explicit warning, or separate consent flow. In the context of a skill that learns user traits over time, silent persistence is more sensitive than ordinary file output because it stores behavioral inferences that may be privacy-relevant and can influence future agent behavior.
This file is explicitly designed to harvest daily notes and assistant logs, extract personality observations, and write them to persistent storage. Even if intended for personalization, this is dangerous because it normalizes covert collection of sensitive behavioral data and stores natural-language evidence that may reveal private context beyond the inferred label itself.
The script scans historical notes and assistant logs, infers personality traits, and persists those inferences to observations.json without any visible consent gate, minimization, or privacy notice. Because it stores both inferred attributes and evidence snippets over time, it creates a durable behavioral profile that can expose sensitive traits if accessed by other skills, operators, or an attacker.
The observation patterns derive broad personal attributes across communication style, decision-making, values, frustrations, interests, emotional state, and prioritization from ordinary conversation text. Inferring and retaining these categories turns routine interaction logs into a persistent profile of potentially sensitive traits, increasing privacy risk and the chance of secondary misuse.
The workflow incrementally scans dated historical files, deduplicates observations, and appends new ones to a long-lived JSON log, effectively building a cumulative user profile from past interactions. In the context of a personality-learning skill, this makes the behavior more dangerous because the surveillance-style retention is the core feature, not an incidental byproduct, so privacy harm is systematic and ongoing.
Line L12 states "Language: English. Swahili phrases occasionally," which imposes a language/locale preference as part of the personality instructions. The policy requires either user choice or a clearly justified locale constraint, and this line does not provide either.
No suspicious patterns detected.