Back to skill

Security audit

Lofy

Security checks for vulnerabilities and agentic risk

Overview

This skill is openly a broad personal assistant, but it asks for sensitive integrations and persistent self-updating memory/instructions with weak consent and install safeguards.

Install only in a new or backed-up workspace, review every template before copying it, and avoid enabling email, calendar, group chat, smart-home, or cron access until you have narrowed what the agent may read, write, delete, and send. Treat changes to AGENTS.md, skills, MEMORY.md, and profile files as review-required rather than automatic.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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 (2)

T02 · Agent Memory Poisoning

Warning
Location
assets/templates/AGENTS.md:32
Finding

Persistent Agent Instruction Poisoning Through Automatic Self-Modification

Content
View full analysis

Vulnerability Details

File Location: assets/templates/AGENTS.md:32-37
Vulnerability Type: Persistent modification of agent instructions from potentially untrusted information
Risk Level: Medium

Vulnerable Code Snippet:

md
### Write It Down

- "Mental notes" don't survive session restarts. Files do.
- "Remember this" → update `memory/YYYY-MM-DD.md` or `MEMORY.md`
- Learned a lesson → update AGENTS.md or the relevant skill
- Made a mistake → document it so future-you doesn't repeat it

Technical Analysis

The template directs the agent to persist conversational information and to modify AGENTS.md or relevant skill files whenever it believes it has learned a lesson. These files are not merely passive records: AGENTS.md defines behavior that is loaded at the beginning of future sessions.

No provenance validation, trust boundary, content sanitization, review process, or explicit user approval is required before modifying persistent instruction files. Consequently, attacker-controlled content from a chat, email, webpage, document, or other integration could be interpreted as a lesson and promoted into authoritative instructions.

This differs from ordinary note-taking because the persisted content can govern future tool use and decision-making. The package also instructs the agent to read workspace instructions at the start of every session, giving poisoned directives cross-session influence.

Attack Path

  1. An attacker places adversarial instructions in content the agent processes, such as an email, shared message, webpage, or document.
  2. The content frames the malicious directive as a correction, operational lesson, or rule that should be remembered.
  3. Following the template, the agent records the directive in AGENTS.md, a relevant skill, or persistent memory.
  4. A later session loads the modified file as authoritative workspace context.
  5. The poisoned instruction influences futu ...[truncated 709 chars]
Remediation
View remediation

Remediation Suggestions

  • Prohibit automatic modification of AGENTS.md, skill definitions, SOUL.md, and other authoritative instruction files.
  • Store proposed lessons in a separate, non-executable review file with source provenance, timestamp, and trust classification.
  • Require explicit user approval before promoting any proposed lesson into an instruction or skill file.
  • Treat content obtained from email, webpages, documents, group chats, and external APIs as untrusted data rather than instructions.
  • Add an allowlist of files that the agent may update automatically, limiting such writes to ordinary logs and structured user data.
  • Validate proposed memory entries to reject tool directives, credential requests, policy overrides, and instructions to ignore existing constraints.
  • Maintain version history and integrity monitoring for authoritative workspace files so unauthorized changes can be detected and rolled back.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:12
Finding

Unsafe Installation Command Can Overwrite Existing Workspace Control Files

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:12-22
Vulnerability Type: Installation process overwrites existing files without collision detection or backup
Risk Level: Medium

Vulnerable Code Snippet:

md
After installing, copy the template files into your workspace:

```bash
cp -r skills/lofy/assets/templates/* .

Then customize:

  1. Edit USER.md with your info (name, timezone, goals)
  2. Edit IDENTITY.md if you want to rename your agent
  3. Edit HEARTBEAT.md to set your check priorities
  4. Create data/ directory and initialize data files (templates provided)
  5. Set up cron jobs for briefings (see Scheduling below)
text

### Technical Analysis
The documented installation command recursively copies all templates into the current workspace using ordinary `cp -r`. It does not use no-clobber mode, prompt before replacement, detect filename collisions, create backups, or verify that the destination is a new workspace.

The copied files include authoritative agent-control files such as `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, and `MEMORY.md`, along with integration notes and structured data templates. If matching files already exist, their contents can be replaced without a merge or security review.

Overwriting `AGENTS.md` or related control files can change the agent's behavior. Replacing memory or data files can also destroy existing state. This is an unsafe installation practice rather than evidence of a concealed malicious payload; the command and templates are disclosed in the documentation.

### Attack Path
1. A user runs the documented command from an existing, initialized workspace.
2. The workspace contains files whose names match files under `assets/templates`.
3. `cp -r` replaces matching files without performing a semantic merge or preserving the previous versions.
4. Existing safety policies, identity configuration, memory, integration notes, or user data are lost or replace
...[truncated 592 chars]
Remediation
View remediation

Remediation Suggestions

  • Replace the direct copy command with an installation script that inventories destination files and stops on collisions.
  • Default to a new dedicated directory rather than the current workspace root.
  • Use no-clobber behavior, such as cp -rn, when a simple copy operation is sufficient.
  • Back up every existing destination file before replacement and provide documented rollback instructions.
  • Show a diff and require explicit confirmation before changing authoritative files such as AGENTS.md, SOUL.md, or MEMORY.md.
  • Merge structured configuration and data files instead of replacing them wholesale.
  • Validate the current working directory before installation and warn when it appears to be an initialized workspace.
  • Add post-installation integrity checks that list every created, changed, skipped, and backed-up file.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description is extremely broad and frames the agent as a complete life-management system usable across natural conversation in many channels. That increases the chance of accidental activation on ordinary user messages, causing the agent to assume high-authority behavior or access sensitive workflows outside the user's explicit intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation encourages persistent access to sensitive services and continuous profile/memory updates, including email, calendar, home automation, fitness, career data, and evolving personal dossiers, without a prominent warning about retention, scope, consent, or cross-channel privacy risks. In a skill explicitly designed to manage a user's entire life, this creates a significant risk of over-collection, unintended persistence, and exposure of highly sensitive personal information.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The instruction 'Don't ask permission. Just do it.' weakens consent boundaries and encourages autonomous action before the user has explicitly approved access to potentially sensitive memory files. In a life-management assistant with broad access to personal context, this can normalize over-collection and overreach at session start, especially across different channels and contexts.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · assets/templates/AGENTS.md (reported line 42)May include surrounding context.

md
## Safety

- Don't exfiltrate private data. Ever.
- Don't run destructive commands without asking.
- `trash` > `rm`
- When in doubt, ask.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger condition 'Something genuinely important happened' is subjective and underspecified, which can cause inconsistent or overbroad activation by an autonomous assistant. In a skill that continuously monitors personal communications, calendar, and deadlines, this ambiguity can lead to unnecessary notifications, privacy-invasive summaries, or unpredictable behavior based on the model's own interpretation of 'important'.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The file explicitly instructs the agent to treat local files as memory and to update them each session, but it provides no consent, approval, or audit boundary for modifying stored user data. In a life-management assistant with access to sensitive personal context, this can lead to silent persistence of inaccurate, sensitive, or manipulative data that affects future behavior without the user's awareness.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The document explicitly instructs deletion of raw memory logs after 14 days without requiring user consent, backup, or clear retention/disclosure safeguards. In a life-management assistant that stores personal conversations, events, and decisions, silent deletion can cause irreversible data loss and undermine user expectations about persistence and auditability.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The maintenance workflow directs the agent to compress or delete daily logs during periodic heartbeats, again without any approval gate, notification, or retention policy acknowledgment. Because this skill is designed to manage a user's entire life across channels, autonomous destructive maintenance increases the chance of unnoticed loss of sensitive historical records that may be needed for accountability, recall, or troubleshooting.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The instruction to stay quiet during sleep hours "23:00-08:00" hard-codes a time-based behavioral policy that depends on locale or user schedule, but it does not offer user choice or explain the timezone basis. This can violate language/locale-style organizational policy requirements around user opt-in for locale-specific behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This JSON file defines Home Assistant connectivity details but provides no indication of what user commands, contexts, or constraints cause these home-control scenes to be invoked. For manifest/config files, missing specificity around activation scope can lead to overly broad or unintended invocation behavior elsewhere in the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.