← 返回扫描报告总表 · ← dshlib 图书馆

扫描报告 · upstash/skills

认证等级L2
验证状态self-declared(单方声明,待独立验证)
验证方法未登记 structured verifiedBy
运行级实测未做运行级实测
内容锚git commit 363a8260700f · upstash/skills · git ls-remote / clone 复现可对账
DIDdid:cha2a:package:upstash/skills
身份锚点npm 未声明 GitHub 仓库——装前请自行核验来源
来源git
插件版本—
安装dsh plugin add github:upstash/skills
扫描日期2026-08-27(36 天前)
扫描层级静态扫描(自研规则 + GuardDog 复核 + OSV 依赖)
扫描器版本dshlib-scan v0.1 · GuardDog 3.2.0 · OSV.dev

自研扫描:⚠️ 待审 · GuardDog 复核:未扫描 · OSV 依赖:未扫描

⚠️ 结论待复核:上次扫描距今 36 天(2026-08-27),插件或运行时更新后结论可能过期,建议重新扫描后再安装。
语义:扫描是提示信号,非安全审查。✅ 通过=无命中;⚠️ 待审=有命中需人工判断;❌ 失败=无法扫描。人工确认恶意→下架。本页全部内容由 dshlib 数据库派生(验证报告 可核对证据)。认证等级与依赖漏洞正交:L4 认证覆盖插件包内容/来源/生态,不覆盖依赖安全(见收录与验证标准)。结论有有效期:插件或运行时更新后,本页结论可能过期(>30 天将标注待复核)。本库能力与边界:披露页。

1. 自研扫描(dshlib-scan)

verified

True

findings

{'excessive_permissions': [{'file': 'skills-main/scripts/check.mjs', 'line': 3, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-box-js/SKILL.md', 'line': 433, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-box-js/SKILL.md', 'line': 441, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-box-js/SKILL.md', 'line': 632, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-box-py/SKILL.md', 'line': 460, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-box-py/SKILL.md', 'line': 468, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-box-py/SKILL.md', 'line': 668, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-cli/SKILL.md', 'line': 88, 'match': 'exec (', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/advanced-features/pipeline-and-transactions.md', 'line': 33, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/advanced-features/pipeline-and-transactions.md', 'line': 42, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/migrations/from-ioredis.md', 'line': 119, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/migrations/from-ioredis.md', 'line': 130, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/migrations/from-redis-node.md', 'line': 159, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/migrations/from-redis-node.md', 'line': 169, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/patterns/leaderboard.md', 'line': 122, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/patterns/session-management.md', 'line': 152, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/patterns/session-management.md', 'line': 204, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/performance/batching-operations.md', 'line': 61, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/performance/pipeline-optimization.md', 'line': 56, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/performance/pipeline-optimization.md', 'line': 70, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/performance/pipeline-optimization.md', 'line': 77, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash-redis-js/performance/pipeline-optimization.md', 'line': 95, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-box-js/overview.md', 'line': 424, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-box-js/overview.md', 'line': 432, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-box-js/overview.md', 'line': 623, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-box-py/overview.md', 'line': 451, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-box-py/overview.md', 'line': 459, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-box-py/overview.md', 'line': 659, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-cli/overview.md', 'line': 79, 'match': 'exec (', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/advanced-features/pipeline-and-transactions.md', 'line': 33, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/advanced-features/pipeline-and-transactions.md', 'line': 42, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/migrations/from-ioredis.md', 'line': 119, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/migrations/from-ioredis.md', 'line': 130, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/migrations/from-redis-node.md', 'line': 159, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/migrations/from-redis-node.md', 'line': 169, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/patterns/leaderboard.md', 'line': 122, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/patterns/session-management.md', 'line': 152, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/patterns/session-management.md', 'line': 204, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/performance/batching-operations.md', 'line': 61, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/performance/pipeline-optimization.md', 'line': 56, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/performance/pipeline-optimization.md', 'line': 70, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/performance/pipeline-optimization.md', 'line': 77, 'match': 'exec(', 'label': '命令执行'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/performance/pipeline-optimization.md', 'line': 95, 'match': 'exec(', 'label': '命令执行'}], 'data_exfiltration': [{'file': 'skills-main/skills/upstash-blob-js/SKILL.md', 'line': 209, 'match': 'token) throw a `TypeError` where they are written, not a `BlobError` per request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash-box-js/SKILL.md', 'line': 704, 'match': 'secret headers into matching outbound HTTPS request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash-box-py/SKILL.md', 'line': 740, 'match': 'secret headers into matching outbound HTTPS request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash-qstash-js/advanced/multi-region/summary.md', 'line': 96, 'match': 'token for outgoing request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash-ratelimit-js/algorithms.md', 'line': 63, 'match': 'tokens that refill at a defined rate. Each request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash-ratelimit-js/features.md', 'line': 70, 'match': 'tokens to subtract per request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash/upstash-blob-js/overview.md', 'line': 200, 'match': 'token) throw a `TypeError` where they are written, not a `BlobError` per request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash/upstash-box-js/overview.md', 'line': 695, 'match': 'secret headers into matching outbound HTTPS request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash/upstash-box-py/overview.md', 'line': 731, 'match': 'secret headers into matching outbound HTTPS request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash/upstash-qstash-js/advanced/multi-region/summary.md', 'line': 96, 'match': 'token for outgoing request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash/upstash-ratelimit-js/algorithms.md', 'line': 63, 'match': 'tokens that refill at a defined rate. Each request', 'label': '凭据字段进入网络请求'}, {'file': 'skills-main/skills/upstash/upstash-ratelimit-js/features.md', 'line': 70, 'match': 'tokens to subtract per request', 'label': '凭据字段进入网络请求'}], 'hardcoded_secrets': [{'file': 'skills-main/skills/upstash-qstash-js/advanced/multi-region/summary.md', 'line': 158, 'match': 'token: "custom_token"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-qstash-js/fundamentals/local-development.md', 'line': 102, 'match': 'token: "eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-redis-js/SKILL.md', 'line': 30, 'match': 'token: "UPSTASH_REDIS_REST_TOKEN"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-redis-js/migrations/from-ioredis.md', 'line': 70, 'match': 'password: "your-password"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-redis-js/migrations/from-redis-node.md', 'line': 83, 'match': 'password: "your-password"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-workflow-js/features/flow-control.md', 'line': 20, 'match': 'token: "<QSTASH_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-workflow-js/features/flow-control.md', 'line': 128, 'match': 'token: "<QSTASH_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-workflow-js/features/invoke.md', 'line': 85, 'match': 'token: "<QSTASH_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash-workflow-js/features/wait-for-event.md', 'line': 74, 'match': 'token: "<WORKFLOW_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-qstash-js/advanced/multi-region/summary.md', 'line': 158, 'match': 'token: "custom_token"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-qstash-js/fundamentals/local-development.md', 'line': 102, 'match': 'token: "eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/migrations/from-ioredis.md', 'line': 70, 'match': 'password: "your-password"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/migrations/from-redis-node.md', 'line': 83, 'match': 'password: "your-password"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-redis-js/overview.md', 'line': 21, 'match': 'token: "UPSTASH_REDIS_REST_TOKEN"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-workflow-js/features/flow-control.md', 'line': 20, 'match': 'token: "<QSTASH_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-workflow-js/features/flow-control.md', 'line': 128, 'match': 'token: "<QSTASH_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-workflow-js/features/invoke.md', 'line': 85, 'match': 'token: "<QSTASH_TOKEN>"', 'label': '明文凭据'}, {'file': 'skills-main/skills/upstash/upstash-workflow-js/features/wait-for-event.md', 'line': 74, 'match': 'token: "<WORKFLOW_TOKEN>"', 'label': '明文凭据'}], 'manifest_contract': [{'file': 'package.json', 'line': 0, 'match': 'patch: dsh-plugin/cordis.patch.yml', 'label': 'dsh.bundle.patch 引用「dsh-plugin/cordis.patch.yml」不存在——插件树加载会失败'}]}

mode

git-refresh

branch

main

2. 第三方复核(GuardDog 3.2.0)

未复核。

3. 依赖漏洞(OSV.dev)

未查询。