Viking Memory System Ultra 2
Analysis
This memory skill is mostly aligned with its purpose, but it embeds third-party API keys, sends stored memories to external LLM services, and contains unsafe code construction that could let crafted memory text run code.
Findings (6)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
local prompt=$(python3 -c "... context = '''${context}'''[:1000]\nmemory = '''${memory_content}'''[:4000] ...")The promotion script interpolates context and memory file contents directly into Python source passed to python3 -c instead of passing them as data. Crafted memory text containing Python string delimiters could alter the generated Python code.
else
FULL_PATH="$PATH_ARG"
REL_PATH="$PATH_ARG"
fi
...
cat > "$FULL_PATH" <<-FRONTMATTERFor non-viking paths, the script accepts the provided path and writes directly to it. The intended workspace boundary is not clearly enforced for this branch.
--hot)
AUTO_HOT=true
SYNC_TO_SHARED=true
...
SHARED_DIR="$VIKING_GLOBAL/shared/memory/$LAYER"
...
cp "$FULL_PATH" "$SHARED_PATH"The v2 write script automatically copies hot/important memories into a global shared memory directory.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
MINIMAX_API_KEY="sk-cp-..." MINIMAX_BASE_URL="https://api.minimaxi.com/anthropic/v1/messages"
The script embeds a provider API key directly in the skill while the registry metadata declares no primary credential.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
local content=$(cat "$file") ... local prompt="...记忆内容:${safe_content}" ... curl -s --max-time 30 "$MINIMAX_BASE_URL" -H "x-api-key: $MINIMAX_API_KEY"Memory file contents are read, placed into an LLM prompt, and sent to an external provider endpoint.
SEARCH_DIR="$WORKSPACE/agent/memories" ... find "$SEARCH_DIR" -name "*.md" ... echo "$CONTENT" ... sed -i "s/^access_count:.*/access_count: $NEW_COUNT/" "$FILE"
Autoload searches persistent memory files, prints snippets into the session context, and updates metadata such as access counts.
