Static Scan Results
scanned 2h ago · by rust-scannerStatic analysis flagged 8 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.
Static reason
One or more suspicious static signals were detected.
Decision evidence
public snapshotBehavioral surface
ChildProcessEnvironmentVarsFilesystemShell
HighEntropyStringsUrlStrings
Source & flagged code
2 flagged · loading sourcesrc/install.jsView file
5// atomic write)
L6: // - ~/.zshrc + ~/.bashrc: one fence-marked block with a wrapper function per
L7: // enabled agent (claude/codex/grok), routed through `unsnooze _run`
...
L29: function parseArgs(rest) {
L30: const opts = { yes: false, settings: CLAUDE_SETTINGS, zshrc: join(homedir(), '.zshrc'), purge: false };
L31: for (let i = 0; i < rest.length; i++) {
...
L55: export function mergeHookIntoSettings(settingsJson) {
L56: const settings = JSON.parse(settingsJson);
L57: settings.hooks = settings.hooks || {};
...
L146: // interactive setup wizard (it calls back here with --yes afterwards).
L147: if (!opts.yes && !configFileExists() && process.stdout.isTTY && process.stdin.isTTY) {
L148: return import('./wizard.js').then(({ runWizard }) => runWizard());
Medium
Install Persistence
Source writes installer persistence such as shell profile or service configuration.
src/install.jsView on unpkg · L5src/wizard.jsView file
4L5: import { execFileSync } from 'node:child_process';
L6: import * as p from '@clack/prompts';
...
L16: try {
L17: execFileSync(process.platform === 'win32' ? 'where' : 'which', [bin], { stdio: 'pipe' });
L18: return true;
...
L29: p.log.warn(process.platform === 'win32'
L30: ? 'tmux not found — unsnooze does not support native Windows.\nRun it inside WSL (https://learn.microsoft.com/windows/wsl/install), where tmux and the wrappers work normally.'
L31: : 'tmux not found — unsnooze needs tmux to watch and revive sessions.\nInstall it first (brew install tmux / apt install tmux), then re-run `unsnooze setup`.');
...
L79: if (customizeMsg) {
L80: const msg = await p.text({
L81: message: 'Resume message:',
High
Sandbox Evasion Gated Capability
Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.
src/wizard.jsView on unpkg · L4Findings
1 High3 Medium4 Low
HighSandbox Evasion Gated Capabilitysrc/wizard.js
MediumEnvironment Vars
MediumInstall Persistencesrc/install.js
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings