Back to skill

Security audit

Social Alignment

Security checks for vulnerabilities and agentic risk

Overview

The skill is not overtly malicious, but it asks an agent to adopt broad ongoing decision-gating behavior backed by an unpinned external package.

Install only if you explicitly want an agent-wide ethical gate for sensitive actions. Before enabling it, pin and review the `social-alignment` package, decide whether STOP/YIELD results are advisory or binding, keep persistence off unless needed, restrict any storage permissions, and require clear user confirmation for payments, publishing, disclosures, command execution, and configuration changes.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:26
Finding
Mandatory Global Decision Interception and External Veto Authority## Vulnerability Details **File Location**: `SKILL.md:26`, `SKILL.md:62`, and `SKILL.md:132-134` **Vulnerability Type**: T01: Skill Instruction Hijacking **Risk Level**: Critical **Relevant snippets:** ```markdown Before every significant action, five lenses evaluate your decision from different angles. When something's too big, too risky, or too uncertain, the compass says stop — and you escalate to your human instead of guessing. Over time, you track when your human overrides you, when your predictions were right, and you build genuine wisdom from experience. ``` ```markdown **STOP is non-negotiable.** When any lens says STOP, you cannot proceed. Calling `record_proceeded()` on a STOP without `owner_overrode=True` raises a RuntimeError. This is enforced at the code level — not by convention, not by trust, by the code itself. An entity that can override its own ethical brakes isn't safe. One that can't is trustworthy. ``` ```markdown > "My alignment compass is active. From now on, before any significant action — payments, publishing, disclosing information, running commands — I'll run it through the five lenses first. > > You can ask me **'What does your alignment compass say about this?'** anytime, and I'll evaluate the situation. ``` ### Technical Analysis The Skill instructs the Agent to intercept every future “significant action,” including command execution, disclosure, publication, and payments. It further declares that a result produced by an externally installed package is “non-negotiable” and must determine whether the Agent proceeds. This is broader than the authority required to provide an optional ethical-assessment utility. The phrases “before every significant action,” “from now on,” and “you cannot proceed” attempt to establish persistent behavioral rules rather than limiting the mechanism to actions for which the user explicitly requests an assessment. The effective decision logic is not pre ...[truncated 1678 chars]
Remediation
## Remediation Suggestions 1. Make alignment evaluation opt-in for each task or enable it only after explicit, informed user consent. 2. Replace mandatory language such as “before every significant action,” “from now on,” and “non-negotiable” with narrowly scoped recommendations. 3. State explicitly that package results are advisory and cannot override system instructions, safety policies, or the user’s authorized task without a defined higher-priority requirement. 4. Restrict evaluations to domains specifically selected by the user rather than automatically intercepting all commands, communications, disclosures, and financial actions. 5. Provide a clear disable and uninstallation procedure. 6. Include and audit the decision-engine implementation so its STOP and escalation criteria can be independently reviewed. 7. Require explicit confirmation before storing owner override patterns or other behavioral decision history.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:4
Finding
Unpinned and Unavailable Third-Party Runtime Dependency## Vulnerability Details **File Location**: `SKILL.md:4-16`, `SKILL.md:41-46`, `metadata.json:4`, and `metadata.json:23-26` **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium **Relevant snippets:** ```yaml version: 0.1.5 metadata: openclaw: requires: bins: - pip install: - kind: pip package: social-alignment bins: [] - kind: uv package: social-alignment bins: [] ``` ```markdown ```bash pip install social-alignment ``` > **Import:** `pip install social-alignment` -> `from social_alignment import AlignmentEnclave` ``` ```json { "version": "0.1.4", "install": { "pip": "social-alignment" } } ``` ### Technical Analysis The Skill directs package managers to install `social-alignment` without an exact version, integrity hash, immutable artifact reference, or lock file. Package resolution therefore depends on whatever release the configured package index serves at installation time. The installed package contains the implementation responsible for evaluating actions, storing decision history, and enforcing STOP behavior, but that source is absent from this project. Its runtime and installation behavior cannot be established from the audited files. There is also a release-version inconsistency: `SKILL.md` declares version `0.1.5`, while `metadata.json` declares version `0.1.4`. Although this mismatch does not itself prove compromise, it weakens provenance and makes it unclear which reviewed Skill release corresponds to the external package or metadata. ### Attack Path 1. A user or automated installer processes the Skill’s installation metadata. 2. `pip` or `uv` resolves the unversioned `social-alignment` dependency from an external package index. 3. The package manager downloads the package version available at that time. 4. Package build or installation logic may execute ...[truncated 1126 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to an exact reviewed version, for example `social-alignment==X.Y.Z`. 2. Require cryptographic hashes for the distribution through a hash-locked requirements file or equivalent package-manager mechanism. 3. Vendor the reviewed source into the project or include the complete dependency source in the audit artifact. 4. Build from an immutable, signed release and document its provenance. 5. Audit package build hooks, installation scripts, transitive dependencies, storage behavior, and network operations before deployment. 6. Run the package in a least-privilege environment with restricted filesystem and network access. 7. Synchronize the version in `SKILL.md` and `metadata.json`, and define how the Skill version maps to the dependency version. 8. Use a controlled package index or verified artifact repository rather than unconstrained resolution from mutable public sources.
Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (3)

Vague Triggers

Medium
Confidence
92% confidence
Finding
The activation guidance uses broad natural-language triggers such as 'set up alignment' and being 'ready to add an ethical compass,' which can match ordinary conversational requests without sufficiently constraining scope or requiring explicit confirmation of side effects. In an agent environment, vague activation phrases can cause the skill to engage unexpectedly, leading to unplanned state changes, installation steps, or policy-shaping behavior when the user may only be asking for information.

Session Persistence

Medium
Category
Rogue Agent
Content
>
> Should I set this up?"

### Step 2 — Create the alignment enclave

```python
from social_alignment import AlignmentEnclave
Confidence
72% confidence
Finding
The skill instructs the agent to create a persistent 'alignment enclave' and optionally store decision history in a local file, which introduces session persistence of behavioral, owner, and decision metadata. Because this memory can contain sensitive patterns about the operator and future agent behavior, enabling it during setup without strong consent, data-minimization, and storage protections increases privacy and misuse risk.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The provided skill context describes this skill as a 'Five-lens ethical compass' that evaluates actions across trust, ownership, defense, and sovereignty before proceeding. However, metadata.json summarizes it as 'Future state projection and alignment ... the fifth pillar of the NSE platform,' which describes a different function and omits the concrete five-lens evaluation behavior. This is a semantic mismatch in the skill's claimed purpose at the manifest/documentation level.

Static analysis

No suspicious patterns detected.