webchat-extension@0.1.5
CAUTION· static onlyPublisher claims: "部署「网页划线对话」浏览器扩展(Chrome MV3 / 兼容 Chrome·Edge·千问·夸克 等 Chromium 内核浏览器)。在任意网页选中文字,点工具栏图标唤起可拖动对话浮层,带着网页上下文用 CodeBuddy AI 流式问答。包含本地 Express + SSE 后端(CodeBuddy Agent SDK)与前端扩展。当用户要「做一个网页划词对话插件 / 给浏览器装个网页对话工具 / 选中文字问 AI / 部署小虾网页对话扩展 / web highlight chat extension / 把网页内容丢给 AI 聊」时使用本技能。" 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-09 and scored it 63/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: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. 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
const envPath = join(target, "backend", ".env");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 仅当用户在 .env 显式设了 SERVER__PORT 时才注入,用于覆盖系统级 SERVER__PORT,Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 若目标没有 .env,提示用户从 .env.example 复制Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// pack.mjs — 一键打包分享用干净 zip(自动按 .gitignore 排除 node_modules/.env/私钥等)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if (base === '.env') return true; // 仅允许 .env.exampleFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`pack.mjs` 自动按 `.gitignore` + 硬性黑名单排除:`node_modules/`、`.env`、私钥 `*.pem`、`extension.crx`、协议注册表模板、所有 `*.png`(图标由收件人部署时生成)。生成的 zip 即干净分享包,可直接发给他人或推送到仓库。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 1) 项目本体(手动安装版)—— 同样套用敏感过滤,根目录残留的 .env/.pem 也会被排除Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- **Key 模式(推荐无人值守)**:在 `backend/.env` 填 `CODEBUDDY_API_KEY=<你的key>`(申请:https://copilot.tencent.com 控制台)→ 用 Key 直连,不依赖交互登录。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.: "未检测到 codebuddy 登录凭据。请先在终端运行 `codebuddy` 完成登录,或在 backend/.env 配置 CODEBUDDY_API_KEY。",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.for (const pid of out) execSync(`kill -9 ${pid}`, { windowsHide: true });Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.│ ├── backend/ # server.js / launcher.mjs / patch-sdk.mjs / package.json / .env.example(launcher.vbs 由 agent 在部署时用 scripts/gen-vbs.mjs 生成,不随包分发)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 彻底避开桌面端口。也可在 .env 里手动指定 SERVER__PORT=<port> 覆盖。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// null 表示「用户没在 .env 显式设置」→ 不注入,让 server.js 自己分配空闲端口;Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log("✓ 已复制 extension/ 与 backend/(不含真实 .env 密钥)");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 1) 配置 backend/.env(填 CODEBUDDY_API_KEY,可选)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…,或参考 README/references 手动 `reg add` 注册协议。 2. **配置后端**:在 `<target>/backend/` 复制 `.env.example` 为 `.env`,按需填 `CODEBUDDY_API_KEY`(**不填也能跑:复用本机 `codebuddy` CLI 已登录凭据走登录…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const txt = fs.readFileSync(path.join(__dirname, ".env"), "utf8");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// - 已设置且空闲(如 launcher.mjs 从 .env 注入的明确端口)→ 尊重使用。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.? "认证失败:请先在终端运行 `codebuddy` 完成登录(与你在 WorkBuddy 用的是同一套凭据),或在 backend/.env 配置 CODEBUDDY_API_KEY 后重启后端。"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.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
17 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim noaheleven: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- 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.
- Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.