T08 · Insecure Dependencies
- 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. ]]>
