{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"kyomio-dsh-zen-remote","slug":"kyomio-dsh-zen-remote","rank":435,"url":"https://github.com/KyoMio/dsh-zen-remote","name":"KyoMio/dsh-zen-remote","category":"remote","description":{"zh":"手机优先的移动端界面重排 + 配对码网关：经自建反代或 Cloudflare Tunnel 把 DSH 变成可安装、带推送的 PWA。","en":"Phone-first mobile UI rework plus a pairing-code gateway: use DSH from anywhere as an installable PWA with Web Push, behind your own reverse proxy or Cloudflare Tunnel."},"stars":6,"starsCheckedAt":"2026-08-21","repository":{"owner":"KyoMio","repo":"dsh-zen-remote","requestedRef":null,"subpath":""},"npm":"dsh-zen-remote","downloads":441,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-zen-remote","tarball":null,"added":"2026-08-19","page":"https://awesome-dsh-plugin.com/p/KyoMio/dsh-zen-remote/","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":"kyomio-dsh-zen-remote","slug":"kyomio-dsh-zen-remote","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:24:54.590Z","scanStatus":"static-complete","verdict":"caution","score":94,"commit":"9eea08bb0bc8846871bc0ff7ba8b9af63be15d2b","commitDate":"2026-08-22T13:38:35+08:00","artifactDigest":"sha256:b9a4f3aed12885d1aed88bb80b840b0d4b8ab0bd4d59371a5478268712e0dad0","downloadUrl":"https://github.com/KyoMio/dsh-zen-remote/archive/9eea08bb0bc8846871bc0ff7ba8b9af63be15d2b.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-zen-remote","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-zen-remote","packageVersion":"1.1.3","bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-runtime"]},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-layout","@deepseek-ai/dsh-client-ui-primitives","@deepseek-ai/dsh-client-ui-sidebar","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-host-webserver","@deepseek-ai/dsh-session","@deepseek-ai/dsh-session-log-export","@deepseek-ai/dsh-tools"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-zen-remote","manifestName":"dsh-zen-remote","nameMatch":true,"npm":{"name":"dsh-zen-remote","latestVersion":"1.1.1","publishedAt":"2026-08-21T06:40:36.509Z","createdAt":"2026-08-17T17:16:45.970Z","versionCount":6,"maintainers":1,"repository":"git+https://github.com/KyoMio/dsh-zen-remote.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"attested","tarballHost":null,"versionMatch":"differs"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-zen-remote","name":"dsh-zen-remote","path":"cordis.patch.yml","disabled":false},{"id":"dsh-zen-remote-gateway","name":"dsh-zen-remote/lan-gate.mjs","path":"cordis.patch.yml","disabled":false},{"id":"dsh-zen-remote-push","name":"dsh-zen-remote/dsh-push.mjs","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","environment","filesystem","host-bundle","network","session","subprocess"],"outboundHosts":[{"host":"dev.to","count":3},{"host":"dsh.internal","count":2},{"host":"evil.example","count":2}],"findings":[{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"lib/client.js","pathClass":"source","line":201,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"87e8e136bfe0ec624b8b4ecd"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"lib/client.js","pathClass":"source","line":676,"evidence":"dangerouslySetInnerHTML","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"48792e8ff9af270b03d1c839"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"lib/lan-gate-server.cjs","pathClass":"source","line":219,"evidence":".innerHTML=","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"6c8bfe6d15ff244fb15950f3"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"lib/lan-gate-server.cjs","pathClass":"source","line":220,"evidence":".innerHTML=","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"6c8bfe6d15ff244fb15950f3"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"pwa/inject.js","pathClass":"source","line":130,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"d7e3a60733ff94a66033a754"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/cdp-probe.mjs","pathClass":"source","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"8854e97d149e03c9bb2c497f"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"src/client/MobileHomeChips.tsx","pathClass":"source","line":168,"evidence":"dangerouslySetInnerHTML","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"0412da0cc547176ebb638cee"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"src/client/MobileHomeChips.tsx","pathClass":"source","line":285,"evidence":"dangerouslySetInnerHTML","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用","hash":"0412da0cc547176ebb638cee"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"src/client/MobileNavOverlay.tsx","pathClass":"source","line":173,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"39af184fe54e7466501f464a"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"src/client/MobileSessionHeader.tsx","pathClass":"source","line":311,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"78a23ac7d737817be5459e49"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"test/sw.test.cjs","pathClass":"test-example-docs","line":56,"evidence":"vm.runInContext(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"位于测试、示例或文档目录","hash":"30046bf97027e69077221857"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"test/turn-fold-desktop.test.cjs","pathClass":"test-example-docs","line":84,"evidence":"eval(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"位于测试、示例或文档目录","hash":"a9c283d35601751c9d5c3789"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/util.cjs","pathClass":"test-example-docs","line":9,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"d26416b79f1d0f92f5b8e05d"}],"counts":{"critical":0,"high":0,"medium":8,"low":1},"rawCounts":{"critical":0,"high":2,"medium":9,"low":2},"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":119,"bytesScanned":1576786,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"test-example-docs":11,"markdown":5,"cordis":1,"source":96,"manifest":1,"yaml":1,"data":3,"html":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:24:54.590Z","commit":"9eea08bb0bc8846871bc0ff7ba8b9af63be15d2b","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:26:03.546Z","commit":"b9f152ebb9ab58798fdae38f032bd12c79ead4d4","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:54:45.420Z","commit":"b9f152ebb9ab58798fdae38f032bd12c79ead4d4","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"9eea08bb0bc8846871bc0ff7ba8b9af63be15d2b","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:24:54.590Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"b9f152ebb9ab58798fdae38f032bd12c79ead4d4","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:26:03.546Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"b9f152ebb9ab58798fdae38f032bd12c79ead4d4","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:54:45.420Z"}]}