novahiz@0.13.1
CAUTION· install onlyPublisher claims: "Enforce AI agent skills before every file edit: prompt classifier, skill catalog, and pre-edit gate." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-07 and scored it 69/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Pipe-to-shell pattern; Access to sensitive file paths; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
// way npm/npx (.cmd shims) can run at all — direct CreateProcess throwsFix: Pin versions and sources; vendor anything fetched at install time.{ id: "uv", argv: ["sh", "-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"] },Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.// "npx supabase"). If the provider ID is actually a scopedFix: Pin versions and sources; vendor anything fetched at install time.const TEXT_EXTENSIONS = new Set([".log", ".txt", ".json", ".jsonl", ".md", ".env", ".out", ".err", ""]);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const TEXT_EXTENSIONS = new Set([".log", ".txt", ".json", ".jsonl", ".md", ".env", ".out", ".err", ""]);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.{ id: "uv", argv: ["sh", "-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"] },Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out."Si Node passe mais pas le bundler : npx next dev --webpack. Ne pas modifier le hosts sans droits admin.",Fix: Pin versions and sources; vendor anything fetched at install time.// M8: dotted dotfiles (.env.local, .eslintrc.json, .babelrc.js) carry a configFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.{ id: "uv", argv: ["sh", "-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"] },Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out./** Read `.novahiz/verify.json`, returning a reason instead of throwing on bad input. */Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`{ "commands": { "tests": "npm test", "typecheck": "npx tsc --noEmit" } }`,Fix: Pin versions and sources; vendor anything fetched at install time."Si Node passe mais pas le bundler : npx next dev --webpack. Ne pas modifier le hosts sans droits admin.",Fix: Pin versions and sources; vendor anything fetched at install time.export const DEFAULT_SCAN_TARGETS = ["tmp", "logs", ".novahiz/evidence", "dev-server.log", ".env.local"];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.{ id: "uv", argv: ["sh", "-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"] },Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.export const DEFAULT_SCAN_TARGETS = ["tmp", "logs", ".novahiz/evidence", "dev-server.log", ".env.local"];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// M8: dotted dotfiles (.env.local, .eslintrc.json, .babelrc.js) carry a configFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// way npm/npx (.cmd shims) can run at all — direct CreateProcess throwsFix: Pin versions and sources; vendor anything fetched at install time./** Read `.novahiz/verify.json`, returning a reason instead of throwing on bad input. */Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// "npx supabase"). If the provider ID is actually a scopedFix: Pin versions and sources; vendor anything fetched at install time.`{ "commands": { "tests": "npm test", "typecheck": "npx tsc --noEmit" } }`,Fix: Pin versions and sources; vendor anything fetched at install time.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
No advisories in OSV for novahiz@0.13.1 as of 5 h ago. This is the package itself, not its dependencies.
What would make this Verified
11 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Unclaimed publisher≈ +8 on the totalClaim novahiz: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
- Remote installer piped to shell≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.