导语:2026年6月9日,微软在补丁日一次性甩出了206个安全补丁,创下历史纪录。压轴的那个,是CVSS 9.8分的CVE-2026-47291——Windows HTTP.sys内核整数溢出漏洞,无需认证、不需要用户任何操作,一个精心构造的网络数据包打过去,SYSTEM权限直接到手。7月11日,安全研究员Omair(@w3bd3vil)在GitHub上放出了完整的PoC代码,这件事的威胁等级立刻从”漏洞在库”变成了”弹药已上膛”。
一、漏洞概述
CVE-2026-47291是一个位于Windows HTTP协议栈(HTTP.sys)中的高危远程代码执行漏洞。HTTP.sys是Windows内核模式的HTTP驱动,负责在操作系统层面解析所有HTTP/HTTPS请求——只要是Windows自带的Web服务,不管用的是IIS、WinRM还是其他基于Windows HTTP Server API的应用,都躲不开它。
漏洞根因是HTTP.sys请求解析器在处理特定HTTP字段时发生的整数溢出(CWE-190),进而演变为堆缓冲区溢出(CWE-122)。攻击者通过精心构造的HTTP请求头,触发长度计算中的整数溢出,导致内核分配一个远小于实际需要的缓冲区。随后当HTTP.sys把完整数据写入这个溢出的缓冲区时,内核堆被破坏,攻击者由此获得内核上下文中的代码执行能力。
整个过程发生在请求解析阶段,远远早于任何身份验证逻辑。换句话说,只要目标Windows主机开着80或443端口,任何人都可以直接发包触发漏洞——不需要登录账号,不需要用户点击任何东西。
漏洞编号档案:
| 字段 | 值 |
|---|---|
| CVE编号 | CVE-2026-47291 |
| CVSS评分 | 9.8(Critical) |
| CVSS向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 缺陷类型 | CWE-190(整数溢出)→ CWE-122(堆缓冲区溢出) |
| 影响厂商 | Microsoft |
| 披露时间 | 2026年6月9日 |
| PoC公开时间 | 2026年7月11日 |
| 利用评估 | “Exploitation More Likely”(微软官方) |
二、技术分析
2.1 攻击面有多大?
这个漏洞的可怕之处,首先在于HTTP.sys的覆盖范围广到离谱。很多人以为HTTP.sys只是IIS的事,实际上远不止于此。只要是调用Windows HTTP Server API的服务,都跑在这个驱动上:
- IIS(互联网信息服务):80/443端口,托管SharePoint、Exchange等企业应用
- WinRM(Windows远程管理):5985/5986端口,企业自动化、批量管理全靠它
- WSDAPI(Web服务发现):5357/5358端口,网络设备发现协议
- 打印假脱机服务:基于HTTP的打印监听
- 所有使用HTTP Server API的自建应用
受影响版本横跨整个Windows生态:
客户端:Windows 10(1607、1809、21H2、22H2)、Windows 11(23H2、24H2、25H2、26H1)
服务器端:Windows Server 2012、2012 R2、2016、2019、2022、2025
从2012年到2025年,十四年的Windows服务器版本全部中招。这还没算那些用Windows做桌面的开发者和企业用户。光是企业里跑着WinRM的Windows服务器,数量就极其可观。
2.2 整数溢出是怎么变成RCE的?
漏洞的技术链条是这样的:
第一步:构造触发数据。 攻击者发送一个带有特殊构造长度字段的HTTP请求,关键在于Content-Length、Transfer-Encoding: chunked等头部字段中 attacker-controlled的值。
第二步:整数溢出。 HTTP.sys在解析这些字段时,会用这些值做乘法或加法来计算需要分配的缓冲区大小。如果运算结果超过了uint32(32位无符号整数)的最大值,就会发生回绕,结果变成一个很小的数字。
第三步:分配错误大小的缓冲区。 内核根据这个溢出后的小数字分配堆内存,远小于实际需要的大小。
第四步:堆溢出。 HTTP.sys随后把完整的攻击者数据写入这个不够大的缓冲区,邻近的内核堆对象被破坏,攻击者获得内核级别的写入原语(write primitive)。
第五步:控制流劫持。 通过覆写内核对象,攻击者将执行流重定向到自己的代码。由于HTTP.sys运行在Ring 0(内核模式),没有特权边界,拿到SYSTEM权限就是顺水推舟。
2.3 拿到SYSTEM权限之后能干什么?
从攻击者的视角,SYSTEM权限就是整台机器的root。接下来的操作空间:
- 安装持久化后门或Rootkit,机器重启后依然控场
- Dump LSASS进程,导出所有本地凭据和域账户hash
- 拿着窃取的令牌做横向移动,内网漫游
- 直接干掉或绕过EDR(终端检测响应)代理
- 部署勒索软件,加密磁盘
而且,由于HTTP.sys在内核运行,漏洞触发不会产生应用程序级别的异常日志,常规的日志监控很可能捕捉不到。
2.4 是否会蠕虫化?
微软目前没有把CVE-2026-47291标记为可蠕虫化漏洞。CrowdStrike和Automox的安全研究员也指出,整数溢出本身并不等同于自动蠕虫化——稳定的无崩溃利用比单纯RCE的门槛高很多。但能力摆在那里,从”今天还不可蠕虫”到”下周发现可蠕虫方法”,可能只是一篇技术分析的距离。
三、PoC利用代码已公开
2026年7月11日,安全研究员Omair(@w3bd3vil)在GitHub上发布了CVE-2026-47291的完整PoC代码(github.com/omair2084/misc)。虽然这个PoC可能还不包含完整的武器化exploit(能稳定拿shell而不碰碎目标),但对于有经验的红队成员来说,理解其触发机制并自行扩展的门槛已经大幅降低。
关键的是,公开PoC意味着自动化扫描工具会很快出现。Shodan、ZoomEye这类搜索引擎可以在几分钟内定位全球所有暴露80/443端口且未打补丁的Windows服务器——整个漏洞利用链,从发现目标到验证其易受攻击状态,完全可以在自动化框架里完成。
四、防御与修复建议
4.1 紧急补丁
微软已在2026年6月补丁日(KB502569)中提供了修复。IT管理员应立即对照MSRC公告(msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47291)下载对应补丁,优先覆盖面向互联网的Windows服务器和启用了WinRM的所有主机。
4.2 临时缓解措施
如果补丁无法立即部署,可以考虑以下临时缓解手段:
网络层面收紧访问控制。 将80、443、5985、5986等端口限制在必要的源IP范围内,减少暴露面。这不能阻止内网横向攻击,但能挡住互联网直接打过来的第一波。
禁用不必要的HTTP服务。 检查服务器上哪些服务在监听HTTP,关闭不需要的那些。特别是WinRM——很多企业其实并不真正用它的HTTP监听,但默认就开着,是这次漏洞的直接攻击入口之一。
部署WAF/IPS规则。 Check Point已发布相关签名(CPAT-2026-6526),Talos也发布了Snort规则。传统边界防火墙配合应用层检测,能在一定程度上拦住异常HTTP请求。
4.3 长期加固
- 强制实施最小权限原则:即便HTTP.sys被突破,普通服务账户的权限也应限制在最小范围
- 开启Windows Defender Application Control(WDAC):限制未经签名的代码在内核态执行
- 定期轮换凭据:LSASS Dump依然是拿域管的经典路径
- 监控HTTP.sys相关事件:内核崩溃(BugCheck)通常会留下蓝屏转储,是发现攻击的重要信号
五、总结
这个漏洞的本质并不新鲜——整数溢出在内核驱动里并不是什么稀罕物。但CVE-2026-47291的特殊之处在于:它把”无需认证”+”内核模式”+”网络可达”三个高危属性打包到了一起,受影响范围横跨十四年的Windows版本,而且2026年6月就打上了补丁却大量服务器还没修。
现在PoC已经公开,整个利用链条的技术门槛大幅降低。对于红队来说,这是继PrintNightmare、Windows远程桌面授权服务漏洞之后又一个重量级横向移动入口;对于防守方来说,这是7月份最需要优先处理的漏洞,没有之一。别等你的靶子变成别人的战绩。
版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。











暂无评论内容