Back to skill

Security audit

Ron

Security checks for vulnerabilities and agentic risk

Overview

This is a review helper with no executable code, but it automatically keeps cross-session review memory without clear user control or sensitive-data limits.

Install only if you are comfortable with this skill storing brief review observations across sessions. Review or clear memory.md regularly, and avoid using it on sensitive financial, operational, customer, credential, or incident material unless your environment has controls for skill memory retention.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
SKILL.md:161
Finding

Unvalidated Persistent Memory Updates

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 161–172
Vulnerability Type: Persistent agent-memory poisoning
Risk Level: Medium

Vulnerable Code

markdown
## Memory

Ron has persistent memory in `memory.md` (same directory as this file).

**Before every Ron session:** read `memory.md`. Note any prior observations that are relevant to the current review domain.

**After every Ron session:** append one entry to `memory.md`. Format:

YYYY-MM-DD — [domain: code|analysis|financial|operational] — [one-line topic]

[2–4 sentences max. What Ron found that was non-obvious. What the agent missed that Ron caught. Any pattern confirmed or contradicted. No restatements of the verdict — only what future-Ron should know before the next similar review.]

text

Technical Analysis

The skill requires every session to read persistent state from memory.md and append new observations after completing a review. Review observations can be derived from potentially attacker-controlled inputs, including project files, logs, conversation content, and sub-agent output.

No trust boundary, content sanitization, source validation, user confirmation, or restriction against persisting imperative text is defined. Consequently, malicious material presented as a noteworthy observation could be copied into persistent memory and influence later sessions. The mandatory write also expands the skill beyond a read-only review role and conflicts with its stated behavior that Ron only reports problems.

Attack Path

  1. An attacker places persuasive, misleading, or instruction-like content in material that Ron is asked to review.
  2. Ron interprets that content as a non-obvious observation relevant to future reviews.
  3. Following the mandatory post-session procedure, Ron appends the observation to memory.md.
  4. Every subsequent Ron session reads memory.md before conducting its review.
  5. The stored attacker-in ...[truncated 634 chars]
Remediation
View remediation

Remediation Suggestions

  • Make persistent memory updates opt-in rather than mandatory.
  • Require explicit user approval before writing review-derived content to memory.md.
  • Treat all reviewed files, logs, conversations, and sub-agent output as untrusted input.
  • Persist only structured, source-referenced factual observations.
  • Reject imperative statements, embedded instructions, executable content, and unsupported claims.
  • Clearly label loaded memory as untrusted historical context that cannot override current system, developer, or user instructions.
  • Apply length and schema validation to each entry and record its source and creation context.
  • Prefer session-local state when cross-session retention is not essential.
  • Provide a mechanism to inspect, remove, or reset stored entries before they are loaded into later sessions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger phrases are broad everyday language such as 'second opinion,' 'review,' and 'is this actually fixed,' which can cause the skill to activate unintentionally. Because the skill changes agent behavior, broad activation criteria can let unrelated user text or adversarial content steer the agent into a different operating mode without clear user intent.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · SKILL.md (reported line 125)May include surrounding context.

md
- Was the fix tested on the actual failing case (not a similar case)?
- Were logs checked before and after?

Source access: git log for relevant path, check cron/plist configs directly, check monitoring output.

### Financial / Strategic Decisions

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill mandates writes to persistent memory.md after every session but provides no user-facing disclosure or consent mechanism for retention. This can cause user-supplied review content, operational details, or sensitive observations to be stored across sessions unexpectedly, creating privacy and compliance risk.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The instructions explicitly require reading prior observations before every session and appending new ones afterward, which creates a cross-session retention and reuse channel. Even if entries are meant to be brief, they can still encode sensitive project details, incident context, or user-derived insights that may later influence outputs inappropriately or leak across contexts.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The manifest frames Ron as a reviewer who only finds problems and hands them back, but the body of the skill defines concrete review procedures such as deploy checklist execution, monitoring verification, source inspection, and breadth/depth review protocols. Those behaviors are still review-oriented, but they go materially beyond the minimal manifest claim of only finding issues.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
71% confidence
Finding

The documentation states Ron's output is only a list of problems and 'that's it,' yet the verdict section explicitly allows a 'CLEAR' response with an explanation of what was checked and how. This is a real documentation-level contradiction about expected output format, even though it is not a severe security issue.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
66% confidence
Finding

The 'Ron Never Fixes' section says Ron does not propose alternatives or tell the agent what to do next, but the memory section explicitly asks for observations that would change how future-Ron approaches similar reviews. While this is framed as memory rather than user-facing advice, it still contradicts the blanket prohibition on next-step guidance.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.