以下是这个漏洞报告中的关键信息: 项目 仓库: https://github.com/ourway/webfsd 组件: 概要 Webfsd 可被未授权客户端通过特制的超长 HTTP 请求 URI 远程崩溃。 编译有 AddressSanitizer 或 UndefinedBehaviorSanitizer 时,服务器会报告越界错误和 ASan 堆栈缓冲区溢出,涉及堆栈变量 ,然后退出。 影响版本 确认的 - 版本: 1.21 - git rev-parse HEAD: c51981b8b57d62c83c15045f84731cc839be4f1a - git describe --tags --always: 1.21-12-gc51981b 影响 远程未认证的拒绝服务(DoS)通过进程终止/崩溃。 实际攻击场景 实际操作中,攻击者仅发送一个恶意 HTTP 请求。攻击者无服务器文件系统访问权限,也不创建任何目录。当服务器构建路径时,溢出发生在请求解析期间发生的。 证据 图1: UBSan/ASan 报告: 中的 堆栈缓冲区溢出 ( ) 图2: 进程终止及空回复。 根本原因(高级别) 在请求解析/文件名构造期间,长请求 URI 不强制严格上界时访问固定大小的栈缓冲区,导致越界访问和堆栈缓冲区溢出。 建议修复 强制请求 URI/路径的严格最大长度,尽早拒绝过长请求。 避免无界拼接/复制到栈缓冲区; 使用 检查返回值。 在使用 构建/路径中添加明确边界检查。