{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"omdsh-dev-fabric","slug":"omdsh-dev-fabric","rank":217,"url":"https://github.com/omdsh-dev/fabric","name":"omdsh-dev/fabric","category":"dev","description":{"zh":"类似 MC Fabric 的 hook 处理器。","en":"An MC-Fabric-style hook processor."},"stars":15,"starsCheckedAt":"2026-08-21","repository":{"owner":"omdsh-dev","repo":"fabric","requestedRef":null,"subpath":""},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:omdsh-dev/fabric","tarball":null,"added":"2026-08-13","page":"https://awesome-dsh-plugin.com/p/omdsh-dev/fabric/","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":"omdsh-dev-fabric","slug":"omdsh-dev-fabric","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:22:25.409Z","scanStatus":"static-complete","verdict":"caution","score":93,"commit":"349c95891a43ee3f78adf672a514ce44a75646bc","commitDate":"2026-08-21T23:21:46+08:00","artifactDigest":"sha256:d1d28cbeebe3cfea6982606396d57aaf4659604c45f0a97e96e8cae449ef9c09","downloadUrl":"https://github.com/omdsh-dev/fabric/archive/349c95891a43ee3f78adf672a514ce44a75646bc.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:omdsh-dev/fabric","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"@oh-my-dsh/stent-pack","packageVersion":"0.1.1","bundle":{"patch":"./cordis.patch.yml"},"client":null,"lifecycleScripts":{},"peerDependencies":[]},"identity":{"status":"found","installMode":"github-source","upstreamNpm":null,"manifestName":"@oh-my-dsh/stent-pack","nameMatch":null,"npm":{"name":"@oh-my-dsh/stent-pack","latestVersion":"0.1.1","publishedAt":"2026-08-21T16:02:58.709Z","createdAt":"2026-08-21T16:02:58.376Z","versionCount":1,"maintainers":2,"repository":"https://github.com/omdsh-dev/stent.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"mismatch","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"stent","name":"@oh-my-dsh/stent","path":"cordis.patch.yml","disabled":true},{"id":"stent-dsh","name":"@oh-my-dsh/stent-dsh","path":"cordis.patch.yml","disabled":true}],"overrides":[],"jsExpressions":0,"clientPlatform":null,"parseErrors":[]},"capabilities":["agent-control","browser-ui","environment","filesystem","host-bundle","network","subprocess","telemetry"],"outboundHosts":[],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent-api/tests/compat/compat.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"9188e195936e6f5e7136fb8e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent-api/tests/compat/compat.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"5a8eeacc72e357f7dc2faed6"},{"id":"HT-OBFUSCATION-001","title":"源码呈现混淆或载荷隐藏特征","severity":"medium","confidence":"high","layer":"static","path":"packages/stent/src/node/loader.ts","pathClass":"source","line":442,"evidence":"Buffer.from(result.source as Uint8Array).toString('utf8') return readFileSync(fileURLToPath(url), 'utf8') } /** * Re-eval","remediation":"以可读源码分发；若必须打包，请同时提供可复现构建与 source map。","note":"解码后直接进入执行","hash":"e3a681de632f9a81a9a75192","review":{"verdict":"functional","reason":"readSource只是把ESM loader钩子返回的二进制源码解码为utf8字符串供_compile转换管线使用，是标准Node自定义loader读源码逻辑，非载荷隐藏。","model":"sonnet","reviewedAt":"2026-08-22T08:22:25.409Z"}},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"packages/stent/src/testing/testkit.ts","pathClass":"source","line":19,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"210ed6b8f0288f5337e86b1c"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"packages/stent/src/testing/testkit.ts","pathClass":"source","line":19,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"0c7db921ed1b03fa13c3dad7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/hmr/e2e.spec.ts","pathClass":"test-example-docs","line":20,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"aec396f8ee1645d5032382b2"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/hmr/e2e.spec.ts","pathClass":"test-example-docs","line":20,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"573ba3105e6c980133415a7b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/async-fallback.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"7b6c9f84b317e4f89ef7a743"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/async-fallback.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"bee9ac0bd0506810950eca87"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/load-time.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"5590cd66a9ed53891c0074a5"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/load-time.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"ab506cf72066528a886cdb23"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/multi-install.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"311c8bc2ed33c1693980aaf6"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/multi-install.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"7c0824ad3339f94943388a5e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/preload-injection.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"cd17058e7c19d1ad1cb16f9f"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/preload-injection.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"fb1bcd716eb3d98bbf278621"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/stent-dsh-installed.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"a77ea2276206010b3f53f5a4"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/stent/tests/node/stent-dsh-installed.spec.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"d57ea0b192c9f3297978dcd4"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/stent-dsh/main.ts","pathClass":"source","line":38,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"867ec23200234fad62e66cd9"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/stent-dsh/main.ts","pathClass":"source","line":38,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"2fb6c3b47bb9db8bff6b0a0b"},{"id":"HT-IDENTITY-001","title":"npm 上存在同名包但指向其他仓库","severity":"low","confidence":"medium","path":"package.json","pathClass":"manifest","line":1,"evidence":"npm repository=https://github.com/omdsh-dev/stent.git ≠ omdsh-dev/fabric","remediation":"npm 上存在同名包但指向其它仓库；从源码安装时请使用 github: 引用并锁定 commit。","layer":"identity","hash":"09c31ff5acbfc32a67d5f60b"}],"counts":{"critical":0,"high":0,"medium":1,"low":5},"rawCounts":{"critical":0,"high":0,"medium":1,"low":19},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":99,"bytesScanned":694589,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"test-example-docs":34,"data":6,"markdown":9,"cordis":1,"manifest":4,"source":43,"yaml":2}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:22:25.409Z","summary":"该插件是仿 MC Fabric 的 Node 模块钩子处理器（Mixin 转换框架），loser.ts 通过 hook Module._compile 和 ESM loader 对匹配模块源码做转换。命中的 Buffer.from().toString('utf8') 只是把 loader 钩子返回的二进制源码转为字符串以供后续 transform，属于该类工具必要实现，并非混淆或远程载荷解码。插件默认通过 cordis.patch.yml 以 disabled:true 挂载，需用户显式启用才生效，功能与其声明一致。","intentMatch":"consistent","findingsReviewed":1,"findingsCandidates":1,"fromCache":0,"usage":{"inputTokens":10,"outputTokens":3770,"costUsd":0.06772260000000001,"durationMs":44607}}},"timeline":[{"scannedAt":"2026-08-22T08:22:25.409Z","commit":"349c95891a43ee3f78adf672a514ce44a75646bc","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:21:57.733Z","commit":"de342a7bd934fcffac21e18f0893a5d1fe16260b","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:50:18.004Z","commit":"de342a7bd934fcffac21e18f0893a5d1fe16260b","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":"349c95891a43ee3f78adf672a514ce44a75646bc","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:22:25.409Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"de342a7bd934fcffac21e18f0893a5d1fe16260b","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:21:57.733Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"de342a7bd934fcffac21e18f0893a5d1fe16260b","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:50:18.004Z"}]}