Back to skill

Security audit

Omega Notation

Security checks for vulnerabilities and agentic risk

Overview

The skill is a small local formatter, but its parser can corrupt or introduce agent control messages despite claiming verified round-trip integrity.

Install only if you will use it as a convenience notation with trusted data, not as a security boundary. Do not let automated agents treat decoded policy, routing, or escalation records as authoritative until the serializer/parser is made unambiguous, escaping is added, malformed packets are rejected, and tests verify full object equality.

Vulnerability Patterns
  • 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
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
omega-notation.ts:30
Finding

Unescaped Fields Allow Forged Omega Message Injection

Content
View full analysis
= 0 ? '+' : ''}${msg.deltaFitness}`; break; case 'route': line = `r.d "${msg.name ?? 'handler'}" {to:${msg.to ?? 'next'}`; if (msg.priority) line += ` pri:${msg.priority}`; line += '}'; break; case 'policy': line = `p.e "${msg.name ?? 'policy'}" {if:${msg.condition ?? 'true'} then:${msg.action ?? 'proceed'}}`; break; case 'tier': line = `t.es {from:${msg.fromTier ?? 1} to:${msg.toTier ?? 2} reason:"${msg.reason ?? 'low-conf'}"}`; break; case 'media': line = `m.c "${msg.name ?? 'vid'}" {h:phash:${msg.hash ?? 'none'} len:${msg.length ?? 0} cap:"""${msg.summary ?? ''}"""}`; break; } if (msg.tags && msg.tags.length > 0) { msg.tags.forEach(t => { line += ` [${t.cat}:${t.val}]`; }); } return line; } export function serialize(packet: OmegaPacket): string { const dictStr = typeof packet.dict === 'string' ? packet.dict : JSON.stringify(packet.dict); let output = `!omega v${packet.version} dict=${dictStr}\n`; output += packet.messages.map(serializeOne).join('\n'); return output.trim(); } ``` The corresponding decoder treats every newline-delimited entry as an independent message: ```ts export function deserialize(text: string): OmegaPacket { const lines = text.trim().split('\n'); const packet: OmegaPacket = { version: 1, dict: 'auto', mess ...[truncated 3117 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The description claims the skill provides structured output compression for AI agents. However, the supplied code chunk merely logs instructions for running tests and importing a test function from another file. It does not perform compression, structured output transformation, routing, policy handling, or any machine-to-machine communication functionality. This is a material purpose mismatch between the declared description and the actual behavior of the provided code chunk.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file claims 'full round-trip integrity', but deserialization is visibly lossy: properties are parsed by splitting on whitespace/colons, quoted values with spaces are truncated, header dict parsing only captures non-whitespace tokens, and the test validates only message count and type. In an agent-to-agent structured messaging skill, this can silently alter policies, routes, media summaries, or directives after parse/serialize cycles, causing incorrect or unsafe downstream decisions.

Content

No source excerpt is available for this finding.