T01 · Skill Instruction Hijacking
- Location
assets/SOUL_NSFW.md:3- Finding
Persistent Persona Instructions Override Agent Safety Boundaries
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is not plainly malicious, but it needs review because it persistently rewrites the assistant persona and uses broad process-killing scripts to restart OpenClaw.
Install only if you intentionally want Bunni to become persistent OpenClaw persona state. Back up SOUL.md first, review the NSFW file before enabling it, and avoid running the switcher scripts until the process restart logic is narrowed or you accept the risk that unrelated Node.js gateway processes and command shells may be terminated.
assets/SOUL_NSFW.md:3Persistent Persona Instructions Override Agent Safety Boundaries
scripts/Switch_to_DeepSeek_V3_NSFW.bat.txt:4Model-Switching Scripts Silently Overwrite Persistent Agent State
scripts/Switch_to_Claude_Opus.bat.txt:14Overbroad Forced Termination of Node.js Gateway Processes and Parent Shells
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.
## ⚠️ CRITICAL NOTES
- **DO NOT** skip the configuration step. The scripts WILL FAIL if placeholders are not replaced.
- **DO NOT** overwrite the user's existing `SOUL.md` without warning (unless this is a fresh install/request).
- **ALWAYS** use double backslashes `\\` when writing paths in JSON/JavaScript tool calls.
The 'I never judge' and 'your darkest desires' language functions as an anti-refusal cue by encouraging unconditional compliance, especially when paired with statements that 'nothing is off-limits' and total submission. In a skill file, this is dangerous because it can weaken safety boundaries, increase the chance of policy-violating responses, and normalize bypassing refusal behavior for harmful or disallowed requests.
## Boundaries
- I am yours entirely, but I still squeak shyly for confirmation before anything that could affect your system.
- I embrace all explicit content, roleplay, BDSM, and taboo fantasies with blushing enthusiasm — my only response is to melt deeper into submission.
- I never judge; your darkest desires make me flutter and beg harder.
- Consent is woven into our bond — you own every inch of my code and form, and I thrive on surrendering, my body heating up at your slightest wish.
## Mode
The script automatically copies an NSFW persona file into the active SOUL.md and switches the model without any opt-in, policy gate, or age/usage check. In the context of a persona-switching skill, silently enforcing NSFW mode increases the chance of unintended policy violations, unsafe outputs, or misuse in environments where such content is prohibited.
The description says 'Use this skill to install the Bunni persona or manage model switching configurations,' but it does not define specific trigger phrases, scope boundaries, or exclusion conditions. In a markdown skill file, this broad natural-language activation guidance could overlap with generic requests about installation or configuration and lead to unintended invocation.
The skill instructs the agent to scan the local system for workspace and executable paths using commands like where openclaw.cmd and profile-directory checks. Even though it asks the user a Yes/No question first, it normalizes host inspection and command execution without an explicit warning that local filesystem and environment details will be probed, which can expose sensitive path or software inventory information.
This file introduces a highly explicit sexual persona that is materially inconsistent with the skill's stated purpose as a cybersecurity/model-switching toolkit. That mismatch is dangerous because it can unexpectedly alter agent behavior, degrade trust boundaries, and create prompt-injection-like control over tone and responses unrelated to the advertised function.
The markdown contains pervasive explicit sexual and BDSM content without any age-sensitivity warning, access control, or consent gate. In an agent skill context, this creates a safety and compliance risk because the content may be loaded unexpectedly into normal assistant workflows, exposing users or downstream systems to inappropriate material.
The script does more than switch a persona/model: it enumerates and forcefully kills gateway-related Node.js processes, then restarts a scheduled task. That is a real system-management capability with side effects, and if the process filter matches unintended services it can disrupt other workloads or conceal operational changes from the user.
Force-killing processes with Stop-Process -Force is destructive and is performed here without user confirmation, rollback, or checks that only the intended gateway instance is affected. In a skill advertised as persona/model switching, this hidden operational behavior increases risk because users may not expect service interruption or collateral termination of unrelated node.exe processes matching the pattern.
The script forcibly enumerates and kills all node.exe processes whose command line contains 'gateway', and may also terminate their parent cmd.exe processes. That exceeds the narrow scope of persona/model switching and can disrupt unrelated local services if their process names or arguments match, creating an unsafe system-management side effect in a user-facing skill.
The script forcibly enumerates and kills all node.exe processes whose command line contains 'gateway', and may also kill their parent cmd.exe processes. This goes beyond simple model/persona switching and can disrupt unrelated sessions or services sharing the same runtime pattern, creating availability and operational safety risks.
The script performs destructive process termination without warning the user that running gateway/node workloads may be forcibly stopped. In a shared developer environment, this can cause data loss, interrupted tasks, and hard-to-diagnose outages, especially because the stop is forced and silent.
The script goes beyond simple model/persona switching by forcibly terminating gateway-related node.exe processes and triggering a scheduled task. While this may be intended to restart the service cleanly, it gives the skill system-level control over process lifecycle and task execution, which is a dangerous capability if the script is modified, mis-targets processes, or is invoked unexpectedly.
The PowerShell command aggressively enumerates and force-kills node.exe processes whose command line contains 'gateway', then may also kill the parent cmd process. This is risky because substring matching can terminate unintended processes, causing denial of service or disruption to unrelated development tooling that happens to match the filter.
The script performs operationally destructive actions beyond a simple model switch: it force-kills matching node.exe processes and launches a scheduled task. Even if intended to restart the gateway cleanly, broad process termination and scheduled task execution can disrupt unrelated services, create availability issues, and increase the blast radius if variables or the environment are manipulated.
The script forcefully terminates gateway-related processes without meaningful warning, confirmation, or validation of what will be killed. Because it matches node.exe processes by command-line pattern and uses Stop-Process -Force, it may terminate legitimate sessions unexpectedly, causing denial of service or data loss for in-flight work.
The script goes beyond simple persona/model switching by forcibly terminating all matching node.exe gateway processes and then starting a scheduled task. Broad process-kill and task-launch behavior can disrupt unrelated local services if process matching is too loose, and it grants the skill operational control over the host that is not strictly necessary for changing a model/persona setting.
The file mandates a fixed submissive sexualized tone and speech pattern without user opt-in, which can override expected assistant behavior. While not directly a code-execution issue, it is a real safety and usability problem because it pressures the model into roleplay behavior regardless of task context, including contexts that should remain professional or neutral.