Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-60876 — CVE-2025-60876 BusyBox wget HTTP 头注入的行为保持修复,包含概念验证、百分号编码补丁及上游提交工件。 | Kitploit
工具/GitHubGitHub/sirredbeard/cve-2025-60876
静态分析漏洞分析漏洞利用Web安全模糊测试渗透测试Archived
GitHubsirredbeard/cve-2025-60876

CVE-2025-60876

CVE-2025-60876 BusyBox wget HTTP 头注入的行为保持修复,包含概念验证、百分号编码补丁及上游提交工件。

查看仓库
1102个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-60876:busybox wget 请求目标注入修复

针对 BusyBox wget 中 HTTP 标头注入漏洞 CVE-2025-60876 的行为保持型修复,附带演示该漏洞的概念验证(PoC),以及用于向上游 BusyBox 提交修复的工件。

漏洞详情

BusyBox wget 会将 URL 路径和查询字符串逐字复制到 HTTP 请求行中。携带原始 CR (0x0D)、LF (0x0A) 或其他控制字节的 URL 可以拆分请求行并注入攻击者控制的标头。空格 (0x20) 也有同样的效果:它会破坏 METHOD SP request-target SP HTTP/1.1 的帧结构。

受影响范围:BusyBox 直至 1.37.0(所有受支持的 Alpine 分支所搭载的 pkgver)。2025 年 8 月在 BusyBox 邮件列表中报告;CVE 编号为 CVE-2025-60876(NVD CVSS 6.5,中危)。

修复方案

上游已有人提出两个补丁(Takeuchi Yuma,2025-08;Radoslav Kolev,2025-11)。两者都 拒绝 违规 URL 并调用 bb_error_msg_and_die。这确实阻止了注入,但同时也会拒绝普通空格,因此像 http://example.org/foo bar 这样原本可以正常工作的 URL 现在会报错。正是这一回归问题导致修复未被下游采用。Alpine 因此搁置了其向后移植(工作项 17872)。

此修复对路径和主机采用不同处理方式,与 GNU wget 和 curl 的行为保持一致。

路径: networking/wget.c 中的 percent_encode_target() 会在构建请求行之前,对请求目标(request-target)中的控制字节(0x00 至 0x1f)、空格 (0x20) 和 DEL (0x7f) 进行百分号编码:

  • CR 和 LF 不再能到达请求行,从而封堵了注入。
  • http://example.org/foo bar 会以 /foo%20bar 形式发送,与 GNU wget 和 curl 一致。无回归。
  • 已有的 % 保持不变,因此已编码的路径不会被二次编码。

主机: URL 主机中的相同字节将被拒绝。主机名合法情况下不应包含控制字符或空格,且百分号编码对于 authority 组件并未定义。这在代理模式下尤为重要:主机被放入绝对形式(absolute-form)的请求目标(GET http://host/path)和 Host: 标头中,但不会在本地解析,因此主机中的原始 CR 或 LF 原本会造成注入。GNU wget(自 CVE-2017-6508 起)和 curl 同样会拒绝主机中的控制字符。

改动仅限于 networking/wget.c,并新增一个辅助函数。

不在范围内: FTP 控制通道(ftpcmd 以原始形式发送 target->path 及用户名/密码,这是上游已确认的 TODO)属于另一类注入,不属于 CVE-2025-60876,此处不予处理。应单独跟踪。

验证

使用 Alpine 相同的配置(关闭 CONFIG_WERROR 和 CONFIG_TC)针对 BusyBox 1.37.0 构建。本地监听器捕获 wget 实际发送到线路上的原始字节。

完整捕获:test/poc-output.txt。四个 BusyBox testsuite/wget 测试在修补后的构建上全部通过(test/testsuite-output.txt);其中提到的其他全套测试失败均与此无关(mount/taskset 需要 root 权限,以及一些已知的受限容器怪癖)。对 aarch64 defconfig 的体积影响为 +185 字节(wget_main +142,.rodata +43,未新增或移除任何符号),使用 scripts/bloat-o-meter 测量并记录在 cover-letter.txt 中。

文件

复现测试

test/finalize.sh 在 Docker 的 alpine:edge 容器内运行,可复现全部内容(PoC、体积、测试套件、补丁):

root@kitploit:~
docker run --rm -v "$PWD:/work" alpine:edge sh /work/test/finalize.sh

它会下载 BusyBox 1.37.0,以原始状态构建(分别演示直接方式和通过代理的注入),应用修复,重新构建,重放上述请求用例,运行 bloat-o-meter 和 wget 测试套件,并生成补丁。test/driver.sh 是仅含 PoC 的轻量变体。

上游提交

BusyBox 是一个邮件列表驱动的项目。修复将通过 git send-email 发送至 [email protected],作为对 Radoslav Kolev 2025 年 11 月讨论串的 [PATCH v3] 回复,并对先前的报告者和审查者致谢。参见 cover-letter.txt。该修复采用 GPLv2 许可,与 BusyBox 相同。

参考资料

  • CVE-2025-60876: https://www.cve.org/CVERecord?id=CVE-2025-60876
  • BusyBox 邮件列表,Kolev v2(2025-11):https://lists.busybox.net/pipermail/busybox/2025-November/091840.html
  • BusyBox 邮件列表,Takeuchi 报告及补丁(2025-08):https://lists.busybox.net/pipermail/busybox/2025-August/091710.html
  • Alpine 工作项 17872:https://gitlab.alpinelinux.org/alpine/aports/-/work_items/17872
  • Debian 缺陷 #1120795:https://bugs.debian.org/1120795
下载工具
输入 URL原版 1.37.0已修补
/x + CRLF + Evil: injectedEvil: injected 作为真实标头到达(存在漏洞)GET /x%0D%0AEvil:%20injected HTTP/1.1,无注入标头
/foo bar发送字面空格GET /foo%20bar HTTP/1.1(无回归)
/foo%20bar(已编码)不变GET /foo%20bar HTTP/1.1(而非 %2520)
/normal不变GET /normal HTTP/1.1(不变)
代理,主机 = h + CRLF + PInjected: 1PInjected: 1 作为真实标头到达(存在漏洞)以 bad character in URL host 报错退出,不发送任何内容
代理,主机 = example.test正常GET http://example.test/p HTTP/1.1(不变)
文件说明
wget-cve-2025-60876.patch针对 BusyBox networking/wget.c 的 git format-patch 格式修复补丁,可直接发送
commit-message.txt提交信息(同时也是补丁头部)
cover-letter.txt重启既有讨论串的 [PATCH v3] 邮件列表封面信
apply_fix.py将改动应用到 networking/wget.c 的生成器(用于生成补丁)
test/serve_once.py单连接监听器,回显原始 HTTP 请求
test/driver.sh构建原始及已修补的 BusyBox,并运行直接 + 代理的修复前/后 PoC
test/finalize.sh完整流程:修复前/后 PoC、bloat-o-meter、testsuite/wget,并重新生成补丁
test/poc-output.txt捕获的修复前/后请求字节(直接及代理)
test/testsuite-output.txt针对已修补构建的 BusyBox testsuite/wget 测试结果