Back to skill

Security audit

Viking Memory

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent local memory skill, but it can automatically store and later retrieve long-term user information without clear consent, retention, deletion, or sensitivity controls.

Review this skill before installing if you do not want an agent to save personal preferences, conversation history, or other sensitive details into a long-term local memory store. Use it only with clear rules for when memory may be saved, what content is off-limits, and how stored memories can be reviewed or deleted.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Lp3

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding
The skill advertises and demonstrates network access to a local HTTP service but does not declare any explicit tool scope or permissions boundary. That makes the capability less auditable and easier for an agent to invoke without clear operator awareness, which is risky for a memory system handling potentially sensitive user data.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
This skill is explicitly designed to store and retrieve long-term user memories, including preferences and historical conversation content, yet the description does not warn that sensitive personal data may be retained and queried later. Missing disclosure increases the chance of uninformed use, over-collection, and privacy harm if the memory store is queried or populated with sensitive information.

External Transmission

Medium
Category
Data Exfiltration
Content
### 搜索记忆
```bash
curl -s -X POST http://127.0.0.1:18790/api/v1/search/find \
  -H "Content-Type: application/json" \
  -d '{"query": "用户的工作习惯", "limit": 5}'
```
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Medium
Confidence
84% confidence
Finding
User-facing descriptions, parameter help, and returned text are consistently written in Chinese, with no indication that other languages are supported or that the language is user-selectable. This can violate language/locale policy when a skill imposes a specific language without user opt-in.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The add_memory action forwards arbitrary user-provided content and URI directly to a long-term memory API, and this file provides no consent check, sensitivity filtering, or user-facing disclosure about persistence. In a memory skill, silent storage is security-relevant because users may reveal secrets, personal data, or transient conversation content that becomes durably retained and later retrievable.

Natural-Language Policy Violations

Low
Confidence
71% confidence
Finding
The natural-language description, usage scenarios, and examples are entirely in Chinese, and the file does not indicate that language selection is optional or user-configurable. Under the stated policy, forcing a specific language without opt-in can be a policy issue unless the locale restriction is documented and justified.

Static analysis

No suspicious patterns detected.