{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"loguhan-dsh-workshop","slug":"loguhan-dsh-workshop","rank":636,"url":"https://github.com/loguhan/dsh-workshop","name":"loguhan/dsh-workshop","category":"market","description":{"zh":"DSH Web UI 的 Steam 创意工坊式插件商店：浏览、搜索并一键安装社区插件，支持镜像加速、进度 UI、安全检测与中文描述。","en":"Steam Workshop-style plugin store for the DSH Web UI: browse, search, and one-click install community plugins with mirror acceleration, progress UI, security checks, and Chinese descriptions."},"stars":4,"starsCheckedAt":"2026-08-21","repository":{"owner":"loguhan","repo":"dsh-workshop","requestedRef":null,"subpath":""},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:loguhan/dsh-workshop","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/loguhan/dsh-workshop/","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":"loguhan-dsh-workshop","slug":"loguhan-dsh-workshop","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:26:57.145Z","scanStatus":"static-complete","verdict":"caution","score":88,"commit":"cf36f61f708100d9f2c67db3a1722a8b85b53757","commitDate":"2026-08-14T19:01:18+08:00","artifactDigest":"sha256:a7553b9e72672fb8a498e00a87298efe5e26276d847c17ede6e2ba9fb706490d","downloadUrl":"https://github.com/loguhan/dsh-workshop/archive/cf36f61f708100d9f2c67db3a1722a8b85b53757.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:loguhan/dsh-workshop","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-workshop","packageVersion":"0.1.0","bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale"]},"lifecycleScripts":{"prepare":"tsdown"},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-host-webserver","@deepseek-ai/dsh-tools"]},"identity":{"status":"not-published","installMode":"github-source","upstreamNpm":null,"manifestName":"dsh-workshop","nameMatch":null,"npm":null,"repositoryMatch":"not-checked","provenance":"not-checked","tarballHost":null},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-workshop","name":"dsh-workshop","path":"cordis.patch.yml","disabled":false},{"id":"dsh-workshop-web","name":"dsh-workshop/web","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":2,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","environment","filesystem","host-bundle","network","subprocess","telemetry"],"outboundHosts":[{"host":"cdn.jsdelivr.net","count":9},{"host":"ghfast.top","count":4},{"host":"gh-proxy.com","count":4},{"host":"ghproxy.net","count":2},{"host":"ghproxy.cc","count":2},{"host":"gh.llkk.cc","count":2},{"host":"github.moeyy.xyz","count":2},{"host":"registry.npmmirror.com","count":2},{"host":"data.jsdelivr.com","count":2}],"findings":[{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"low","confidence":"high","layer":"dsh-semantics","path":"cordis.patch.yml","pathClass":"cordis","line":13,"evidence":"!!js dshHomePath('dsh-workshop/registry.json')","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","hash":"35b13a1e0ff8ebc099f9a412"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"low","confidence":"high","layer":"dsh-semantics","path":"cordis.patch.yml","pathClass":"cordis","line":18,"evidence":"!!js dshHomePath('dsh-workshop/registry.json')","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","hash":"35b13a1e0ff8ebc099f9a412"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"lib/client.js","pathClass":"source","line":125,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"87e8e136bfe0ec624b8b4ecd"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/host/core-BcUmZo6v.mjs","pathClass":"source","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"e8635745e054beffee897a2a"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/host/core-BcUmZo6v.mjs","pathClass":"source","line":1709,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"e8635745e054beffee897a2a"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/host/web.mjs","pathClass":"source","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"850e9c107fd7f4be6ebf0de5"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/host/web.mjs","pathClass":"source","line":113,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"850e9c107fd7f4be6ebf0de5"},{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"medium","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":64,"evidence":"\"prepare\": \"tsdown\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"源码安装需用户在 allowBuilds 中授权，此脚本会在安装期于用户机器执行","hash":"810168c20b99e01213acbe59"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"src/client/sidebar.ts","pathClass":"source","line":92,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"b00ec3320e5f3f53ca5b83a6"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/core.ts","pathClass":"source","line":5,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a7abed2ca8abdbe11e58a27e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/core.ts","pathClass":"source","line":309,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a7abed2ca8abdbe11e58a27e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/host/web.ts","pathClass":"source","line":12,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5ee0fe37f599e5c53e143567"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/host/web.ts","pathClass":"source","line":136,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5ee0fe37f599e5c53e143567"}],"counts":{"critical":0,"high":0,"medium":3,"low":10},"rawCounts":{"critical":0,"high":0,"medium":3,"low":10},"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":22,"bytesScanned":514678,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"markdown":1,"cordis":1,"source":16,"manifest":1,"yaml":1,"data":2}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:26:57.145Z","commit":"cf36f61f708100d9f2c67db3a1722a8b85b53757","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:28:35.877Z","commit":"cf36f61f708100d9f2c67db3a1722a8b85b53757","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:57:34.541Z","commit":"cf36f61f708100d9f2c67db3a1722a8b85b53757","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":"cf36f61f708100d9f2c67db3a1722a8b85b53757","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:26:57.145Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"cf36f61f708100d9f2c67db3a1722a8b85b53757","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:28:35.877Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"cf36f61f708100d9f2c67db3a1722a8b85b53757","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:57:34.541Z"}]}