Back to skill

Security audit

AOI Triple Memory (Lite)

Security checks for vulnerabilities and agentic risk

Overview

This skill is a simple local workspace memory/search helper with disclosed file writes and no evidence of hidden, remote, or destructive behavior.

Install only if you want a local CLI that can search your current workspace and write decision notes. Avoid putting untrusted or copied external instructions into note titles or tags, and treat saved context notes as user data rather than authoritative agent instructions.

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.js:55
Finding

Persistent Prompt Injection Through Unsanitized Decision Notes

Content
View full analysis
s.trim()).filter(Boolean); const body = `# ${title}\n\n` + `- Tags: ${tags.map(t => `\`${t}\``).join(' ')}\n` + `- Date: ${new Date().toISOString()}\n\n` + `## Decision\n- \n\n## Rationale\n- \n\n## Next actions\n- \n`; fs.writeFileSync(file, body, 'utf8'); ``` ### Technical Analysis The `new-note` command accepts `--title` and `--tag` values from the command line and interpolates them directly into a persistent Markdown document. Although `title` is normalized when constructing the filename, the original value is inserted into the document body without escaping or validation. Tags are similarly trimmed but otherwise remain unrestricted. An attacker able to influence these arguments can include line breaks, Markdown structures, or model-directed instructions. The resulting content is stored under the workspace's `context/` directory. Because this skill is explicitly designed to provide file-based memory and searchable decision notes, a later agent session may retrieve and process the stored content as trusted context. The vulnerable behavior is therefore not filesystem path traversal—the generated filename is constrained—but unsafe persistence of untrusted semantic content into an agent memory channel. Exploitation depends on an attacker being able to control or influence command arguments and on a later agent consuming the generated note. ...[truncated 1536 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
skill.js:50