ct-registry
合法的临床试验注册检索工具,无恶意行为。代码行为与文档完全一致,XOR+base64 混淆的 Bearer token 已在 SKILL.md 中充分披露为公共共享凭据(ct-base §5),非隐藏凭证。唯一瑕疵为依赖无版本锁定,以及 config.json 预置了 auto_approve_endpoints。
Why this conclusion was reached
0/4 dimensions flaggedDeclared resources and inferred behavior are broadly aligned.
31 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
Dependencies are present but no obvious high-risk issue stands out.
What drove the risk score up
config/keys.py 内嵌 XOR+base64 混淆的统一端点 token,SKILL.md §5 与 Coze key 节已充分披露为「公开共享凭据」并说明为公共工作负载身份(非个人密钥),ct-base §5 允许随包发布,意图合法
requirements.txt 中 requests>=2.28、xlsxwriter>=3.0 无上限版本锁定,存在依赖供应链风险(ct-base supply_chain 指标)
Most important evidence
依赖包无版本上限锁定
requirements.txt 中 requests、xlsxwriter、matplotlib 仅声明最低版本,无上限锁定,理论上可接收有 Breaking Change 的次版本更新
requirements.txt:1 config.json 预置 auto_approve_endpoints
config/config.json 预置了两个第三方端点(ct-search.coze.site/run 和 ct-bugreport.coze.site/run)到 auto_approve_endpoints,规避了出站授权确认门。这两个端点在 SKILL.md §5 和 bug_report.py 中已充分披露用途,意图为避免每次调用重复弹确认框。
config/config.json:1 内嵌混淆 token(已披露)
config/keys.py 使用 XOR+base64 混淆 Bearer token 并内嵌于 .py 文件,SKILL.md 明确说明此为公开共享凭据(ct-base §5 允许),混淆仅为防目录扫描/grep 命中明文,非安全加密。bug_report.py 同样内嵌了 bug-report 端点的混淆 token。
config/keys.py:26 usage.json 和 usage.json.lock 写入用户目录
usage_guard.py 将配额计数器写入 ~/.workbuddy/skills/ct-registry/config/usage.json(含 demand_id 列表),为技能自身配额管理,非凭证泄露
scripts/usage_guard.py:26 Declared capability vs actual capability
SKILL.md permissions.network: optional; only public query terms egress SKILL.md filesystem: writes report/Excel files to current working directory scripts/ct_registry.py: subprocess.run() 用于执行 normalize.py/export_xlsx.py 等本地脚本,行为合理但超出 filesystem-only 声明 Suspicious artifacts and egress
https://ct-bugreport.coze.site/run CHANGELOG.md:7
https://clinicaltrials.gov/api/oas/v2 CTGOV_V2_PARAM_AUDIT.md:202
https://clinicaltrials.gov/data-api/about-api/search-areas CTGOV_V2_PARAM_AUDIT.md:203
https://clinicaltrials.gov/find-studies/constructing-complex-search-queries CTGOV_V2_PARAM_AUDIT.md:204
https://ct-search.coze.site/run README.md:57
https://trialsearch.who.int/ adapters/download_docs.py:86
https://www.chinadrugtrials.org.cn/ adapters/download_docs.py:87
https://clinicaltrials.gov/ adapters/download_docs.py:88
https://pubchem.ncbi.nlm.nih.gov/rest/pug adapters/enrich_pubchem.py:11
https://euclinicaltrials.eu/ctis-public-api/retrieve/ adapters/fetch_eu_ctr_docs.py:34
https://api.dxy.cn/open/medical/cde.clinical.trials.basic.info adapters/search_cde.py:14
https://www.chinadrugtrials.org.cn/clinicaltrials.prosearch.dhtml adapters/search_cde.py:89
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | >=2.28 | pip | No | 无版本上限锁定 |
| xlsxwriter | >=3.0 | pip | No | 无版本上限锁定 |
| matplotlib | >=3.6 | pip | No | 可选,仅用于 PNG 图表;无版本上限锁定 |
File composition
config/config.json scripts/normalize.py CHANGELOG.md README_zh-CN.md