What it doesAI
DSH WebUI plugin for one-click update check, apply updates on restart, and reliable restart from Settings.
- One-click update check
- Updates applied during restart
- Reliable restart button from Settings
AI-generated from the repo README — for reference only.
Installation
dsh plugin --profile web add github:DonnieTangzhili/dsh-ops-consoleInstall method: GitHub · not yet tested in container (L3+)
Compatibility
| DSH Version | Status |
|---|---|
| not stated | Declared — not tested |
Requirements
- • Node.js: not stated
- • DSH: declared "not stated"
- • External credentials: none detected
Security Report
Automated static scan, not manual review.
Critical findings in non-blocking categories (dynamic code execution, shell execution, install scripts, obfuscation). Common in CLI/terminal plugins but worth reviewing.
code-exec ×51.1.0dsh manifest02427ca3db5b2026-08-2002427ca3db5bThe scan result is valid for the scanned commit. New commits within 7 days are tolerated (the rating still counts); after 7 days without a rescan the badge shows outdated.
Disclaimer: automated static analysis, not a security guarantee. Always review what you install.
vet verdict: vet: suspicious · score 42
- R10 · info [heuristic] — 依赖清单:1 项(@deepseek-ai/schemastery,供 LLM 审计供应链;已知漏洞核对见后续 OSV 精确版本查询(网络失败静默降级))
- R2 · high [likely] — require('node:child_process') 危险内置模块(执行/网络能力触达)
- R2 · medium [likely] — require('node:path') 标准内置模块
- R3 · info [certain] — 只读 process 成员(能力触达面):process.execPath
- R3 · info [certain] (downgraded) — 直接访问 process.exit(Node 能力逃逸通道)
vet is advisory and does not change dsh’s four-tier level.
• Static heuristic scan: done (6 files)
• Dependency vulnerabilities: requires deep audit (L3+)
• Permission sandboxing: requires runtime testing (L4+)
High-risk findings · 11 / 11
- criticalChild process module usage (Node.js)lib/index.js:9import { spawn } from 'node:child_process';
- criticalChild process module usage (Node.js)lib/index.js:45const cp = require('node:child_process');
- criticalChild process module usage (Node.js)lib/index.js:219const cp = require('node:child_process');
- criticalChild process module usage (Node.js)tools/dsh-restart-helper.cjs:5const { spawn, execFileSync } = require('node:child_process');
- criticalChild process module usage (Node.js)tools/dsh-restart-now.js:4const { spawn } = require('node:child_process');
- warningShell command execution (exec / execSync)lib/index.js:85const r = cp.execFileSync('npm', ['config', 'get', 'registry'], { encoding: 'utf8', windowsHide: true, timeout: 8000 }).trim();
- warningShell command execution (exec / execSync)lib/index.js:155const root = cp.execFileSync('npm', ['root', '-g'], { encoding: 'utf8', windowsHide: true, timeout: 8000 }).trim();
- warningShell command execution (exec / execSync)lib/index.js:161const v = cp.execFileSync('dsh', ['--version'], { encoding: 'utf8', windowsHide: true, timeout: 8000 }).trim();
- warningShell command execution (exec / execSync)tools/dsh-restart-helper.cjs:15const out = execFileSync('netstat', ['-ano'], { encoding: 'utf8', windowsHide: true, timeout: 8000 });
- warningShell command execution (exec / execSync)tools/dsh-restart-helper.cjs:50execFileSync('taskkill', ['/F', '/PID', String(pid)], { stdio: 'ignore', windowsHide: true });
- warningFilesystem write operationstools/dsh-restart-helper.cjs:35fs.appendFileSync(path.join(os.homedir(), '.dsh', 'dsh-restart-now.log'),
Heuristic static scan — may produce false positives. Review the source yourself before trusting.
Activity
Last commit 2026-08-20 · activity: Active
• Repo created: 2026-08-20
• Stars: ★ 3 · Forks: 0
• Health: Active — committed within last 30 days
