审计 skill 从 7 个扩到 11 个,并修复若干会导致静默失效或凭据泄露的缺陷。
新增 skill
- language-stack-audit — 各语言/框架专属陷阱。原内容锚点几乎全是 Java,混栈项目会系统性漏报。覆盖 PHP(弱类型比较、phar 反序列化)、Python(os.path.join 吞绝对路径、format 串注入)、Node(原型链污染、类型混淆)、Go(text/template 当 HTML 用 = XSS)、.NET(ViewState/MachineKey)、Ruby(Kernel#open 管道执行)、Rust、C/C++、前端框架、模板引擎 SSTI。细节按栈放在
references/下,用到哪个读哪个。 - auth-authz-testing — 认证/授权专项。角色矩阵测试法、密码重置链、JWT 十条(kid 注入 / jku 外链 / HS-RS 混淆)、OAuth 与 SAML XSW、多租户隔离、BFLA 裸奔方法清单。
- modern-attack-surface — API/GraphQL/gRPC、WebSocket CSWSH、CORS、原型链污染、Host 头与缓存投毒、请求走私、云元数据与凭据、容器 K8s、非 HTTP 中间件、供应链 CI/CD、LLM 与 MCP 应用面。
- audit-reporting — 交付规范。CVSS 与 P5 五级映射、CWE/OWASP/API-Top10 对照、单条报告 12 项要素、PII 脱敏、修复建议三层(缓解+根治+变体)、复测。
方法论补强
- WAF/RASP 识别进 P1,且明确「被 WAF 挡 = blocked,不是无漏洞」——不识别 WAF 是黑盒假阴性的头号来源。
- 证伪纪律进 P5:对照组、排除统一错误页与随机 token 抖动、反向验证。
- 发现他人后门/入侵痕迹的处置规程进 P0:停手、保全证据、上报。
- 覆盖矩阵 10 → 14 列(新增 认证 / CSRF / 并发 / 信息),并补「矩阵外必查清单」。
缺陷修复
- skill 可能整批静默失效:
skills未在inject中声明却直接调用,服务未就绪时全部注册失败且无日志。改为ctx.inject(['skills'], ...)并记录结果。 - 工具子进程拿到完整环境变量:模型可调用的脚本此前继承全部
process.env(实测 101 个,含 API key 类)。改为 allowlist,收敛到 26 个。 - 工具子进程无超时、卸载不回收:加 300s 超时与 dispose 时 kill;
timedOut/signal/code独立返回。 - 凭据落盘权限过宽:ledger 明文存目标口令/Cookie/Authorization,改为目录 0700、文件 0600、临时文件名随机化(对 Linux/macOS 生效)。
- 报告路径可逃逸:标题为
..时会写到上级目录;补 Windows 保留名处理。 - finding 新增
cvss/variants/rootCause字段,贯通到报告骨架与撰写子代理。 - 所有漏洞都被标成 Info:
add_finding省略 severity 时静默默认Info,而工具 schema 里 severity 是裸{type:'string'}(无 enum、无说明),常驻提示也从未提过它——模型自然不填。现在 severity/grade/verifyStatus 都带 enum 与说明;省略 severity 按 grade 推导下限(unauth→High、session→Medium、code→Low);grade=unauth配severity=Info这种自相矛盾直接报错拒绝;旧 ledger 载入时自动纠正。自愈只消除矛盾(抬到下限),不替你判断真实等级。像「默认口令拿到 Super Admin」这类应当是 Critical,需要复核后改。
- 「目标」页长跑后停止更新:子目标那条指令只写在开局的一次性消息里,跑几十轮后被压缩出上下文。现在目标状态与纪律随点子板一起每轮注入,并会提示「本阶段子目标已清空,该补下一批或进下一阶段」。
样式
补齐键盘焦点可见(此前全插件 0 处焦点样式)、prefers-reduced-motion、按钮 hover 态;去掉唯一一处硬编码颜色;覆盖矩阵加粘性表头与入口列。
升级注意
工具子进程改为环境变量白名单后,若你的工具脚本依赖某个自定义全局环境变量,需要把变量名加进 lib/kit.js 的 ENV_ALLOW。