已关闭
[issue] 命令错误输出泄漏 git/代理 URL 凭据(BF1007/BF1008) #26
cezarbbb创建于  24 天前关闭于  18 天前
cezarbbb
24 天前 创建
name about title labels
BotForge 问题单 报告 BotForge 中可复现的问题 [Issue] 命令错误输出泄漏 git/代理 URL 凭据(BF1007/BF1008) bug

问题概述

BF1007/BF1008 错误输出将带凭据的 URL 原样透传(scheme://user:pass@host),泄漏面覆盖三处:终端 ERROR 块、logs/commands/*.log、--format json 的 error.message 字段。首次出现:本版(botforge-win 1.0.3 升级测试)新发现。受影响安装场景:使用带凭据 git/代理 URL 的环境的 BF1007/BF1008 错误路径。实际影响:凭据经终端、日志文件、JSON 输出三通道泄漏,属安全问题;错误透传路径为通用代码,预计跨平台存在。建议对所有命令输出/错误消息/日志做 URL userinfo 脱敏。

影响范围

项目 内容
执行模式 □ plan ☑ install □ status □ doctor
受影响的工具、资源或目标版本 git/代理 URL 凭据(泄漏通道:终端 ERROR 块 / logs/commands/*.log / --format json error.message)
安装后端 ☑ cargo ☑ 其他(git) □ archive □ apt-mirror □ 托管 Cargo
影响程度 ☑ 严重(安全)
临时规避办法 避免在 URL 中内嵌凭据(改用凭据管理器);定期清理 logs/commands

复现步骤

  1. 配置带凭据的 git 全局代理(http://user:pass@host),registry 冷缓存
  2. botforge-win install minimal --yes(触发 BF1007/BF1008)
  3. 检查终端 ERROR 块、logs/commands/*.log、--format json error.message 中的 URL 形态

预期结果

所有错误输出通道对 URL userinfo 脱敏(scheme://user:***@host)。

实际结果

三通道均原样透传 scheme://user:pass@host,T4.01 实测泄漏 6 次(存档已脱敏 ***);T6.06 假凭据场景未复现(registry 热,未走到报错路径)。证据:T4.01/T6.06。T4.01(冷 registry + git 全局代理带凭据)实测输出(存档已脱敏):

bot-forge error
  Error code  BF1007
ERROR command error: "cargo" "+1.89.0" "install" "rust-bot-hw" … "--index" "sparse+http://rust.inhuawei.com/crates.io-index/" …
warning: spurious network error (3 tries remaining): [5] Could not resolve proxy name (Unsupported proxy syntax in 'http://b00938567:***@@proxy.huawei.com:8080': Bad hostname)
warning: spurious network error (2 tries remaining): …同上…
warning: spurious network error (1 try remaining): …同上…
(上述 3 行 ×2 组,共 6 次凭据出现;同内容落盘 logs\commands\<epoch>-<pid>-<n>-rust-bot.log)
error: download of config.json failed
Caused by: [5] Could not resolve proxy name (Unsupported proxy syntax in 'http://b00938567:***@@proxy.huawei.com:8080': Bad hostname)
exit=7

T6.06 假凭据复测(http://bfredact:bfpass123@proxy.invalid,仅 env 注入):BF1008(registry 热,未走网络路径),输出中假密码出现 0 次——泄漏路径以 T4.01 为准。

各平台确认:黄区 Windows x64 复现(T4.01 冷 registry 场景);热缓存场景(T6.06)未复现;错误透传路径为通用代码,预计跨平台存在。

运行环境与供应信息

项目 内容
BotForge 版本或提交号 botforge-win 1.0.3(--version 自报 1.0.1)
操作系统与架构 Windows x64
Shell PowerShell
配置来源 git 全局代理(带凭据 URL)
软件仓库 / 镜像 公共 crates.io(冷 registry 经代理访问)
校验和清单 不涉及
相关工具及版本 git(全局代理配置)

安全、性能与恢复证据

  • ☐ 已提供校验和、签名或来源验证结果
  • ☑ 已提供冷缓存/热缓存、执行次数和基线(T4.01 冷 registry 复现 / T6.06 热缓存未复现)
  • ☑ 已提供总耗时、并发度、处理器、内存、磁盘或网络数据(泄漏 6 次计数)
  • ☐ 已提供取消、事务日志、失败恢复、回滚或幂等性表现
  • ☑ 已说明失败后的残留文件、进程或系统状态(logs/commands/*.log 为残留泄漏面,存档已脱敏)

附件与提交确认

  • ☑ 已检索现有问题单,确认不是重复问题
  • ☑ 已提供最小复现步骤、预期结果和实际结果
  • ☑ 已提供可核对的安装、校验或恢复证据(如适用)
  • ☑ 已完成日志、配置和附件脱敏(凭据以 *** 表达)
likedislike
Ccezarbbb
23 天前 修改了issue 的描述
KKarliosQu成员
18 天前 关联了pull request:fix: redact URL credentials from diagnostic output (issue#26)
VVaynNecol成员
18 天前 关闭了 issue