{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"shaobeichen-dsh-pocket","slug":"shaobeichen-dsh-pocket","rank":31,"url":"https://github.com/shaobeichen/dsh-pocket","name":"shaobeichen/dsh-pocket","category":"notify","description":{"zh":"手机远程访问 DSH Web 界面：扫码即用局域网或公网（cloudflared 隧道）访问，实时同屏、移动端适配布局，带设置页管理。","en":"Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab."},"stars":358,"starsCheckedAt":"2026-08-21","repository":{"owner":"shaobeichen","repo":"dsh-pocket","requestedRef":null,"subpath":""},"npm":"dsh-pocket","downloads":12345,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-pocket","tarball":null,"added":"2026-08-15","page":"https://awesome-dsh-plugin.com/p/shaobeichen/dsh-pocket/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"shaobeichen-dsh-pocket","slug":"shaobeichen-dsh-pocket","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:19:49.089Z","scanStatus":"static-complete","verdict":"pass","score":99,"commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","commitDate":"2026-08-20T21:40:11+08:00","artifactDigest":"sha256:4c8bc1d2e9926a87c4bb6e73ede4e680890be6aa8a65825cc8a3a5101dace640","downloadUrl":"https://github.com/shaobeichen/dsh-pocket/archive/4cdd3ec04ab8943c0264c344ad4779c4727402ef.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-pocket","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-pocket","packageVersion":"1.9.2","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-ui-layout","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-session-log-export"],"platform":"web"},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/cordis"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-pocket","manifestName":"dsh-pocket","nameMatch":true,"npm":{"name":"dsh-pocket","latestVersion":"1.9.2","publishedAt":"2026-08-20T13:40:40.242Z","createdAt":"2026-08-15T09:47:40.513Z","versionCount":63,"maintainers":1,"repository":"git+https://github.com/shaobeichen/dsh-pocket.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-pocket","name":"dsh-pocket","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["browser-ui","credentials","environment","filesystem","host-bundle","network","session","subprocess"],"outboundHosts":[{"host":"ghproxy.net","count":1},{"host":"gh.ddlc.top","count":1},{"host":"gh-proxy.com","count":1},{"host":"mirrors.tuna.tsinghua.edu.cn","count":1}],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/index.js","pathClass":"source","line":13,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"89dedaa9e6429e9e52b8af60"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/restart.js","pathClass":"source","line":14,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"dbe0ea6fa1431902e6ca7806"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/restart.js","pathClass":"source","line":44,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"dbe0ea6fa1431902e6ca7806"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/tunnel.mjs","pathClass":"source","line":6,"evidence":"execSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"62f0d88ea6f44827eefc545f"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/tunnel.mjs","pathClass":"source","line":6,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f790e4d87fac065c37c8ad9e"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"test/service.test.js","pathClass":"test-example-docs","line":207,"evidence":"vm.compileFunction(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"位于测试、示例或文档目录","hash":"628c8e4463544f11ad08429f"}],"counts":{"critical":0,"high":0,"medium":0,"low":5},"rawCounts":{"critical":0,"high":1,"medium":0,"low":5},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":29,"bytesScanned":353339,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"test-example-docs":6,"markdown":2,"source":18,"cordis":1,"data":1,"manifest":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:19:49.089Z","commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","policyVersion":"HT-DSH-0.2.2","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T11:18:15.609Z","commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","policyVersion":"HT-DSH-0.2.1","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T10:46:04.990Z","commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","policyVersion":"HT-DSH-0.2.0","verdict":"pass","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:19:49.089Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:18:15.609Z"},{"kind":"first-scan","from":null,"to":"pass","commit":"4cdd3ec04ab8943c0264c344ad4779c4727402ef","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:46:04.990Z"}]}