Back to skill

Security audit

UO Razor Assistant

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed reference-only skill for helping users create and validate Ultima Online Razor macros and scripts, with no hidden execution or persistence mechanism found.

Before installing, understand that this skill helps generate macros/scripts that can automate in-game actions. Review generated artifacts, back up Razor profiles/macros/scripts, test in a safe area, and follow your shard's automation and PvP rules.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

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 · references/macro_serialization_legend.md (reported line 26)May include surrounding context.

md
### Notes on HotKeyAction IDs

Razor’s built‑in actions are internally identified by numeric IDs.  When you assign a hot‑key to a built‑in action, Razor records a line like `Assistant.Macros.HotKeyAction|1059|`.  A similar line with ID `0` and the notation `Play:Name` is used to run a user macro or script (e.g., `Assistant.Macros.HotKeyAction|0|Play:Recall`).  **Never assume a numeric ID without verification.**  ID numbers can vary between Razor versions and shards.  To discover an ID, record a macro that executes the built‑in hot‑key and inspect the serialized line.  For an OpenClaw agent, treat unknown IDs as ambiguous and require user confirmation.

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 · references/core_reference.md (reported line 39)May include surrounding context.

md
## Lists

Lists provide built‑in support for dynamic collections.  Scripts can create lists with `createlist <name>`, add items using `pushlist`, remove items using `poplist` or `removelist`, and iterate through items using `for`/`foreach` loops.  The `list <name>` expression returns the list for iteration, and `inlist` tests membership.  These constructs enable complex inventory or travel automation (e.g., cycling through runebooks).  Lists are one of the most significant differences between Razor CE and Outlands.

## Timers and Cooldowns

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 · references/glossary.md (reported line 49)May include surrounding context.

md
## Lists

Lists provide built‑in support for dynamic collections.  Scripts can create lists with `createlist <name>`, add items using `pushlist`, remove items using `poplist` or `removelist`, and iterate through items using `for`/`foreach` loops.  The `list <name>` expression returns the list for iteration, and `inlist` tests membership.  These constructs enable complex inventory or travel automation (e.g., cycling through runebooks).  Lists are one of the most significant differences between Razor CE and Outlands.

## Timers and Cooldowns

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 · references/outlands_constraints.md (reported line 35)May include surrounding context.

md
## Lists

Lists provide built‑in support for dynamic collections.  Scripts can create lists with `createlist <name>`, add items using `pushlist`, remove items using `poplist` or `removelist`, and iterate through items using `for`/`foreach` loops.  The `list <name>` expression returns the list for iteration, and `inlist` tests membership.  These constructs enable complex inventory or travel automation (e.g., cycling through runebooks).  Lists are one of the most significant differences between Razor CE and Outlands.

## Timers and Cooldowns

Static analysis

No suspicious patterns detected.