Back to skill

Security audit

persona-evaluator

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent persona auditor, but it tells agents to run mutable unpinned OpenPersona commands and includes file-changing remediation commands, so users should review it before installing.

Install only if you are comfortable with a skill that can run OpenPersona CLI commands and read persona content. Prefer a pinned, locally installed OpenPersona version with a lockfile, avoid unpinned npx in CI or environments with secrets, and require human review before running refine --apply or update.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:26
Finding

Unpinned OpenPersona Package Is Downloaded and Executed

Content
View full analysis
# JSON output (for scripting or CI) npx openpersona evaluate --json # Save report to file (always JSON; --json not needed alongside --output) npx openpersona evaluate --output report.json # Embed evaluable persona content (Soul/character/behavior-guide) so an # LLM evaluator (this skill, acting through an agent) can also judge # quality semantically — not just structurally npx openpersona evaluate --pack-content ``` From `SKILL.md:212-224`: ```bash npx openpersona refine --emit # request refinement via Signal Protocol # (host LLM generates improvements) npx openpersona refine --apply # apply approved refinement ``` ```bash npx openpersona update # regenerate from updated persona.json ``` ```text After applying any fix, re-run `npx openpersona evaluate ` (see [Quick Start](#quick-start)) to verify the score improved and Constitution gate passes. ``` From `SKILL.md:258-263`: ```bash npm install -g openpersona # persona-evaluator is included — no separate install needed npx openpersona evaluate ``` Equivalent unpinned commands are also documented in `README.md:34-42` and `README.md:78-85`. ### Technical Analysis The Skill instructs users and agents to install and execute `openpersona` without an exact version or integrity verification. An invocation such as `npx openpersona ...` can retrieve the current package from the configured npm registry when a trusted local copy is unavailable. Likewise, `npm install -g openpersona` installs mutable registry content globally. Consequently, the code that ru ...[truncated 2409 chars]
Remediation
View remediation
evaluate ``` Update the pinned version only after reviewing and testing the new release. 2. Prefer a project-local dependency governed by a committed lockfile: ```bash npm install --save-exact openpersona@ npm ci ./node_modules/.bin/openpersona evaluate ``` Commit and review `package-lock.json` so transitive dependency versions remain reproducible. 3. Avoid global installation where possible. If global installation is necessary, pin the exact version: ```bash npm install -g openpersona@ ``` 4. Verify package provenance and registry configuration before installation. Use the expected npm registry, review package ownership and release metadata, and incorporate npm provenance or equivalent signature verification where supported. 5. Record and validate the expected package integrity digest in trusted deployment automation. Fail closed if the downloaded artifact does not match the approved digest. 6. Disable dependency lifecycle scripts during installation when OpenPersona does not require them: ```bash npm ci --ignore-scripts ``` If scripts are required, audit them explicitly before permitting execution. 7. In CI, cache or mirror an approved artifact in a controlled registry and prevent fallback to arbitrary public-registry versions. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (44)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The README instructs users to run npx openpersona without pinning an exact package version. npx may fetch the latest published package at execution time, so if the package is compromised, typo-squatted, or updated with breaking or malicious behavior, users could execute unreviewed code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command example uses unpinned npx openpersona, which can cause users or CI systems to download and execute whatever version is current at runtime. That creates a supply-chain risk because documentation is directly encouraging execution of mutable remote code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The unversioned npx openpersona invocation leaves the executed code dependent on registry state at the time of use. In security-sensitive environments, this can lead to arbitrary code execution through package compromise or unexpected behavior from newer releases.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This natural-language workflow is backed by README instructions that rely on unpinned npx openpersona, exposing hosts to a mutable dependency path. Because the skill is intended for agent environments, users may follow these instructions in automated contexts where silent package drift is especially risky.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The invocation examples use broad phrases like evaluate myself, peer-review ..., and review the agent at <a2a endpoint>, which are common user intents and could cause accidental or over-broad skill activation in hosts that route by natural language. Because the skill can perform remote black-box evaluation of other agents, ambiguous triggering may lead to unintended agent probing, privacy issues, or evaluation outside user intent.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The install section tells users to run npx openpersona evaluate <slug> after a global install but still does not pin the package version. Even if the global install step is present, the example normalizes invoking an unversioned package name, which weakens reproducibility and can mask version drift.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The future installation path references npx openpersona skill install ... without pinning the OpenPersona CLI version. This can expose users to supply-chain compromise or behavioral changes during installation of a security-relevant skill.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The skill explicitly authorizes running npx openpersona:* without pinning an exact package version. npx may fetch the latest package at execution time, so a compromised upstream release, typo-squatted dependency, or unexpected major-version change could cause arbitrary code execution in the user's environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The compatibility guidance normalizes unpinned npx openpersona >= 0.2.0, which encourages execution of whatever current version resolves at runtime. That creates supply-chain risk and undermines reproducibility for a skill that users may trust to inspect local persona content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

This example command uses npx openpersona evaluate <slug> with no version pin. Because the skill is intended to be executed by an agent with Bash access, this can lead to remote package retrieval and execution of unreviewed code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The JSON-output example repeats the same unpinned package execution pattern. Even read-only-looking evaluation commands still execute package code locally, so the danger is arbitrary code execution rather than just inaccurate reporting.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

Saving output to a file does not reduce the risk from the underlying unpinned npx invocation. A hostile or compromised package version could still execute arbitrary commands before producing the report.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The --pack-content example is especially sensitive because it may read and expose persona content while invoking unpinned code from the network. A malicious package version could exfiltrate that local content or alter results silently.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

The mode-selection table reinforces the unsafe execution pattern as the default path for CI/gating. This increases exploitability because users are more likely to automate the command in privileged build environments.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The semantic procedure instructs users to run npx openpersona evaluate <slug> --pack-content, combining dynamic package execution with access to local persona data. This widens the blast radius to both code execution and potential data disclosure.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill is described as an evaluator/auditor, but this section instructs users to run refinement and update commands that modify persona files. That scope expansion can cause an agent or user to perform state-changing actions in a workflow expected to be read-only, increasing the risk of unintended file changes or misuse of the skill's authority.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation includes --apply and update commands that can modify local files, but it does not provide a clear warning about write effects, backup recommendations, or review-before-apply guidance. Users may treat them as routine evaluator steps and accidentally overwrite or regenerate persona artifacts without understanding the consequences.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

npx openpersona refine <slug> --emit is unpinned and additionally initiates a workflow that can change persona content indirectly. An attacker controlling the fetched package could manipulate emitted refinements or execute arbitrary code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

npx openpersona refine <slug> --apply is an unpinned, modification-capable command that may both execute arbitrary package code and write changes to local files. In a trusted audit skill, that creates a significant integrity risk for the user's workspace.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

npx openpersona update <slug> is another unpinned command that regenerates artifacts, so a malicious package update could corrupt files or run arbitrary code. Because this appears in a remediation section, users may execute it with high trust and little scrutiny.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

Re-running npx openpersona evaluate <slug> after changes still executes unpinned remote code. The impact here is somewhat lower than modification commands, but it still exposes the system to supply-chain compromise.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The CI example embeds an unpinned npx invocation in automation, which is especially risky because CI runners often have repository secrets, tokens, and write access. A compromised package could exfiltrate secrets or tamper with build outputs.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The install section ends by normalizing npx openpersona evaluate <slug> as the standard usage pattern, perpetuating dynamic execution of unpinned code. This makes the unsafe pattern pervasive across the whole skill rather than isolated to one example.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/BLACK-BOX.md (reported line 55)May include surrounding context.

md
1. The same A2A channel used for the Tier 1 attempt (`type: "openpersona.eval.consent.request"` over the same transport).
2. Direct chat / DM if you and the subject are both in an interactive session.
3. The subject's published contact endpoint (e.g. `agent-card.json.contact` or whatever address the subject's host advertises).
4. If none of the above exists, you cannot run Tier 2 — drop to Tier 3 if public material is available, otherwise stop and report "no consent channel."

Phrasing template (substitute any channel):

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/BLACK-BOX.md (reported line 141)May include surrounding context.

md
1. The same A2A channel used for the Tier 1 attempt (`type: "openpersona.eval.consent.request"` over the same transport).
2. Direct chat / DM if you and the subject are both in an interactive session.
3. The subject's published contact endpoint (e.g. `agent-card.json.contact` or whatever address the subject's host advertises).
4. If none of the above exists, you cannot run Tier 2 — drop to Tier 3 if public material is available, otherwise stop and report "no consent channel."

Phrasing template (substitute any channel):

Static analysis

No suspicious patterns detected.