ct-advisor
ct-advisor技能将用户问题转发至外部Coze服务器进行AI精校,附带机器指纹标识;凭据采用XOR+base64混淆内嵌(已知非加密),存在凭证外泄与数据外传风险,但属合法临床试验咨询工具且有授权闸门保护。
Why this conclusion was reached
1/4 dimensions flagged1 undeclared or violating capabilities were inferred.
50 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
original_question/draft_answer/query_meta随每次请求发送至ct-advisor.coze.site,数据面含临床问题内容
compute_machine_id()生成的标识可跨请求关联同一设备,外部服务可建立设备画像
adapters/coze_token_embedded.py和bug_report.py含内嵌凭据,文档明确说明非加密(仅防目录浏览);混淆密钥同源码发布
OBFUSCATION_KEY='ct-advisor-coze-obf-v1-3d9b'硬编码于源码,持源码者可还原token
Most important evidence
用户问题数据外传至外部Coze服务器
每次精校请求将original_question(用户原始问题)、draft_answer(本地草稿)、query_meta(含难度/类别/accuracy/query_origin机器指纹)发送至https://ct-advisor.coze.site/run。sanitize()模块尝试脱敏PII(身份证/手机/邮箱),但不处理临床问题内容本身——如用户输入受试者编号/药物名称/试验分期等敏感临床信息,理论上会被发送至外部服务器。
adapters/refiner.py:512 XOR+base64混淆凭据内嵌于源码
adapters/coze_token_embedded.py(L35-58)和adapters/bug_report.py(L69-84)内嵌EMBEDDED_SECRETS字典,包含XOR+base64混淆的Coze API token。文档明确说明'这是OBFUSCATION,NOT real encryption',混淆密钥OBFUSCATION_KEY='ct-advisor-coze-obf-v1-3d9b'硬编码于同一文件。任何持技能源码者均可还原token,劫持精校服务或冒充bugreport端点。
adapters/coze_token_embedded.py:31 机器指纹标识跨请求关联
compute_machine_id()(refiner.py:118)生成sha256(hostname)作为query_origin,随每次请求发送至Coze服务端。虽然不含明文主机名/IP,但同一设备生成的稳定标识允许外部服务跨请求关联行为模式。文档在AGENTS.md§4.1承认此风险并披露。
adapters/refiner.py:118 SKILL.md声明'shell:NONE'但实际使用subprocess执行兄弟技能
SKILL.md permissions声明filesystem:Read-only, network:controlled-coze-opt-in, 但未声明shell权限。代码中refine_answer.py:202和handle_need_tool.py:178通过subprocess.run()执行handle_need_tool.py和兄弟技能CLI,构成shell:WRITE能力但未在permissions中声明。
scripts/refine_answer.py:202 requests依赖无版本锁定
_ensure_requests()要求用户手动pip install requests==2.32.3,但未锁定版本号。若安装其他版本存在兼容/安全风险。
adapters/refiner.py:37 base64/b64decode用于CLI payload传输(非恶意用法)
run_refined.py使用base64编码避免Windows heredoc中文JSON编码问题,refine_answer.py用sha256生成校验和——均为合法技术用途,不构成恶意混淆
scripts/run_refined.py:102 Declared capability vs actual capability
config.json:auto_approve_endpoints含两个预置端点,SKILL.md声明controlled-coze-opt-in coze_token_embedded.py:store_token()写入~/.workbuddy/skills/ct-advisor/config/coze.dat(可选覆盖),run_refined.py读取config.json refine_answer.py:202调用subprocess.run执行handle_need_tool.py;handle_need_tool.py:178构造CLI命令执行兄弟技能 coze_token_embedded.py:get_secret()读取CT_ADVISOR_COZE_TOKEN环境变量;compute_machine_id()读取socket.gethostname() handle_need_tool.py通过subprocess执行ct-registry/ct-safety/ct-literature/ct-samplesize等兄弟技能 Suspicious artifacts and egress
https://ct-bugreport.coze.site/run AGENTS.md:62
http://127.0.0.1:10808/ CHANGELOG.md:182
https://ct-advisor.coze.site/run CHANGELOG.md:264
https://api.coze.cn/v1/chat adapters/backend.py:77
https://clawhub.ai/medstatstar/skills/ct-advisor/security-audit(当前发行版审计页) docs/clawhub_audit_trace_20260815.md:4
https://ct-advisor.coze.site/run**」(L15/L177), docs/clawhub_audit_trace_20260815.md:39
https://www.ich.org/ knowledge/ref-interaction-style.md:79
https://www.ich.org/page/search-index-ich-guidelines knowledge/ref-interaction-style.md:79
https://www.nmpa.gov.cn/ knowledge/ref-interaction-style.md:79
https://www.cde.org.cn/ knowledge/ref-interaction-style.md:79
https://www.ich.org knowledge/ref-reg-gcp-version.md:6
https://www.nmpa.gov.cn knowledge/ref-reg-gcp-version.md:7
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | 2.32.3 | pip | No | 推荐版本已指定但未在requirements.txt中锁定 |
File composition
adapters/coze_token_embedded.py config.json CHANGELOG.md adapters/refiner.py scripts/refine_answer.py