Back to skill

Security audit

soul-in-sapphire

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Notion-backed emotional memory and journaling tool with sensitive persistence, but its behavior is coherent with that purpose and bounded by explicit user configuration.

Install only if you intentionally want this agent to maintain emotional memory and journals in your Notion workspace. Review the Notion databases, cron cadence, workspace path, ambient recall setting, and credential injection method; keep vents and personal state data out of shared Notion spaces unless that is deliberate.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (48)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Local filesystem writes, file locking, process metadata persistence, and remote schema inspection all indicate broader operational control than the simple description suggests. The combination of local durable state and remote inspection increases both privacy risk and the chance of unintended side effects during ordinary use.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 44)May include surrounding context.

md
.js` and search it with `ltm_search.js`. For an emotion-linked experience, use `experience_recall.js` with an event query, known event ID, or known state ID. It

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 142)May include surrounding context.

md
.js` and search it with `ltm_search.js`. For an emotion-linked experience, use `experience_recall.js` with an event query, known event ID, or known state ID. It

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 143)May include surrounding context.

md
.js` and search it with `ltm_search.js`. For an emotion-linked experience, use `experience_recall.js` with an event query, known event ID, or known state ID. It

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 159)May include surrounding context.

md
.js` and search it with `ltm_search.js`. For an emotion-linked experience, use `experience_recall.js` with an event query, known event ID, or known state ID. It

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

md
- Use `continuity_check.js` or `identity_diff.js` before self-description edits.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 161)May include surrounding context.

md
- Use `continuity_check.js` or `identity_diff.js` before self-description edits.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

md
- Use `continuity_check.js` or `identity_diff.js` before self-description edits.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 162)May include surrounding context.

md
- Use `continuity_check.js` or `identity_diff.js` before self-description edits.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 119)May include surrounding context.

md
Resolve this skill's installed base directory from its `SKILL.md` location and

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 160)May include surrounding context.

md
- `stage_ambient_recall.js` / `read_ambient_recall.js`: ambient staging and separate consumption receipts; SIS_AMBIENT_RECALL=0 pauses both.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/memory_boundary.test.js (reported line 33)May include surrounding context.

js
}
  return spawnSync(process.execPath, [path.join(scripts, name + '.js'), ...args], {
    encoding: 'utf8', input, timeout: 10000,
    env: { ...childEnv, NOTIONCTL_PATH: mock, ...env },
  });
}
const parse = result => JSON.parse(result.stdout);

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · scripts/notionctl_bridge.js (reported line 46)May include surrounding context.

js
function apiCompatibilityHint(rawText) {
  const text = String(rawText || '');
  if (!text.includes('Unknown command: api')) return null;
  return 'Installed notionctl does not support "api". Update skills/notion-api-automation/scripts/notionctl.mjs or set NOTIONCTL_PATH to a compatible notionctl.';
}

function authSetupHint() {

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · scripts/stage_ambient_recall.js (reported line 483)May include surrounding context.

js
const at = nowIso();
  let state = loadState(stateFile, args.dailyCap, args.timezone);
  const loadError = state._loadError;
  delete state._loadError;
  const roll = args.forceRoll ?? randomRoll();
  const shelf = shelfForRoll(roll);
  let staged = null;

Static analysis

Detected: suspicious.dangerous_exec, suspicious.exposed_secret_literal

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/emostate_service.test.js:61

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/experience_recall.test.js:165

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/heartbeat_observe.test.js:26

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/memory_boundary.test.js:31

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/notionctl_bridge.js:93

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/notionctl_bridge.test.js:18

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/soul_io.test.js:25

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/vent_journal.test.js:172

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/notionctl_bridge.test.js:16