ct-advisor@1.3.42
CAUTION· static onlyPublisher claims: "The single entry point for the ct-series across the full clinical-development lifecycle — a cloud-assisted clinical trial advisor. Coverage has been broadened to regulatory-response / trial-operations / deliverable-drafting / study-design / statistics / submission / safety / data-management / real-world-evidence; only clearly non-medical / non-life-science questions receive a constructive referral. On the local side, in addition to the deterministic vague-gate and attachment decoding, it injects multi-turn session context (continuation of prior rounds); answer caching and deduplication are handled entirely in the cloud (serving standalone questions only — no answer cache is kept locally); no knowledge base is retained locally and no local network retrieval occurs. External reference: the teal clinical-data interactive exploration framework. / 面向临床研发全生命周期的 ct 系列「总入口」,云端辅助的临床试验总顾问。覆盖范围已扩大至合规应答 / 项目运营 / 交付物撰写 / 方案设计 / 统计分析 / 注册申报 / 安全性 / 数据管理 / 真实世界研究——仅当明确非医药/生命科学语境时才给建设性转介建议。本地侧在确定性二值闸门(是否 vague)与附件解码之外,新增会话上下文注入(多轮承接);答案缓存与去重一律由云端承担(仅为独立问题服务,本地不缓存答案);不保留知识库,不进行本地网络检索。外部参考:teal 临床数据交互探索框架。" Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-11 and scored it 56/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Hex-encoded string detected; Access to sensitive file paths; Hex-encoded string detected. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
fake = b"\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" + b"\x00" * 512Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.return subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…达风格、不复用样本事实。理由:样本可能含过时信息。 - **P1-D 本地用户记忆**:新增 `scripts/memory_manager.py`,支持 `add/list/load/prune/clear`,写入 `~/.workbuddy/ct-advisor-memory.json`(**刻意避开** `MEMORY.md` 以免冲突);默认 **TTL 90 天**(过期由 `prune` 清理);`add` 非交互模式强制 `--confirm`、`clear`…Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.return subprocess.run(cmd).returncodeFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.DENY_NAME_PARTS = ("token", "secret", "credential", "password", ".env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.legacy = b"\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" + b"\x00" * 512 # 迷你 OLE2Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.- 写入后尝试 chmod 0600(失败忽略,不打断技能)。Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.proc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.big_legacy = b"\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" + b"\x00" * (4 * 1024 * 1024)Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.* 文件名含 token/secret/credential/password/.env 一律拒绝;Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.out = subprocess.check_output(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
24 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim medstatstar: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Hex-encoded string detected≈ +4 on the totalPut hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.