文章总结: 该文档介绍了BlackHatUSA2026上提出的漏洞组装方法论,针对Windows内核AFD驱动。通过跨层组合视角分析AFD与底层传输驱动的交互,发现了30多个安全漏洞,包括逻辑提权链和沙箱逃逸。核心发现是跨组件边界上的信任传递导致漏洞可被反复组装,建议安全研究人员关注此类跨层攻击面。 综合评分: 90 文章分类: 漏洞分析,红队,内网渗透,安全工具,实战经验
漏洞组装工厂:AFD 驱动中的 Windows 内核漏洞挖掘方法论
原创
AIxSec69 AIxSec69
AIxSec69
2026年8月27日 00:02 美国
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
漏洞组装工厂:AFD 驱动中的 Windows 内核漏洞挖掘方法论
来源:Black Hat USA 2026 Briefings, Session #52366
标题:Vulnerabilities Assembled! The Vulnerability Factory Inside the Windows Kernel
作者:Angelboy (@scwuaptx) — DEVCORE 高级安全研究员,MSRC 2024/2025/2026 MVR Top 100,Pwn2Own Toronto 2022 Master of Pwn
适合读者:Windows 安全研究人员、漏洞分析工程师、红队成员、内核开发者
简介:演讲者提出了一种”漏洞组装”方法论,通过跨层组合视角分析 AFD.sys,发现 30+ 个安全漏洞,包括从普通用户到 SYSTEM 的逻辑型提权链和 AppContainer 沙箱逃逸。
◆ ◆ ◆
一、一个反复出现的问题
2024 年 8 月,微软修复了 CVE-2024-38193,这是一个被 Lazarus Group 在野利用的 Windows 内核提权漏洞,影响 AFD.sys(Ancillary Function Driver for Winsock)中的 AfdConnect 函数。六个月后,补丁被绕过——CVE-2025-21418 通过 AfdAccept 函数触发了相同的根本原因。又过了三个月,第二个补丁再次被绕过——CVE-2025-32709 通过 AfdSuperAccept 触发了同样的问题。
同一组件、同一根本原因、三次独立 CVE、两次补丁绕过。这在经过多年安全加固的 Windows 内核组件中并不常见。
为什么会这样?
Angelboy 在 Black Hat USA 2026 的演讲中给出了一个系统性的回答:问题不在于单点漏洞,而在于 AFD 的攻击面结构本身就存在一种可以被反复”组装”出新漏洞的模式。他称之为漏洞组装工厂(The Vulnerability Factory)。
二、AFD 是什么
AFD(Ancillary Function Driver for Winsock)是 Windows 内核中的一个关键驱动(afd.sys),它是 Winsock API 的内核模式入口。简单来说:
-
当应用程序调用
socket()、bind()、connect()等 Winsock API 时,请求通过ws2\_32.dll进入内核,由 AFD 接收并转换为 I/O 请求 -
AFD 再将这些 I/O 请求分发给底层传输驱动(如
tcpip.sys处理 TCP/UDP、afunix.sys处理 Unix 域套接字、hvsocket.sys处理 Hyper-V 套接字) -
在整个网络栈中,AFD 处于用户态 API 和内核态网络协议驱动之间的桥梁位置
▲ AFD 架构(TLI 传输模式):应用 → AFD.sys → 底层传输驱动 tcpip / afunix / hvsocket,对应 AF_INET / AF_UNIX / AF_HYPERV(来源:Black Hat USA 2026 Slides)
AFD 支持三种传输模式:TLI(Transport Layer Interface,仅指定地址族/套接字类型/协议)、Hybrid(指定传输路径如 \Device\Tcp)、TDI(Transport Driver Interface,通过扩展属性指定任意传输设备路径)。
TDI 模式是本次研究的重点。在这种模式下,用户可以通过创建套接字时的扩展属性,直接指定底层的传输设备路径——这个设备可以是任何有效的内核设备名称。
三、在野漏洞的历史线索
演讲者首先梳理了近年来 Windows 内核中在野漏洞的分布情况:
▲ Windows 内核在野漏洞分布:Win32k、CLFS、CFF 与 AFD 是最集中的组件(来源:Black Hat USA 2026 Slides)
▲ 第一个在野 AFD 漏洞 CVE-2024-38193:被 Lazarus 利用,AfdConnect 缺失校验导致 UAF,2024 年 8 月修补(来源:Black Hat USA 2026 Slides)
从图表中可以清楚看到,Win32k、Common Log File System(CLFS)、Cloud Files Filter(CFF)和 AFD 是在野利用最集中的几个内核组件。其中 AFD 在 2024-2025 年一年内出现了三个在野利用漏洞——CVE-2024-38193、CVE-2025-21418 和 CVE-2025-32709。
这三个漏洞有相同的根源:AFD 的连接/接受操作中对端点状态的验证缺失,导致了 UAF(Use After Free)条件。第一个漏洞通过 AfdConnect 触发,补丁修复了 AfdConnect 路径的验证;攻击者随后发现 AfdAccept 路径同样的验证缺失——第二个 CVE;第二个补丁修复了 AfdAccept;攻击者又发现了 AfdSuperAccept——第三个 CVE。
这一连串的补丁绕过揭示了 AFD 的一个结构性问题:一个套接字操作可以通过多个不同路径进入内核,而每个路径由不同的 IOCTL handler 处理。由于缺乏统一的校验层次,补丁往往只覆盖了被报告的路径,而为其他路径留下了相同的弱点。
四、漏洞组装方法论
演讲的核心是一套系统性的漏洞发现方法论,演讲者将其概括为三个步骤:
▲ 组装攻击面:AFD 可到达的底层传输驱动可以是非预期的(??? .sys)(来源:Black Hat USA 2026 Slides)
步骤一:理解攻击面
AFD 的攻击面由大量 IOCTL handler 组成——AfdBind、AfdConnect、AfdAccept、AfdSuperAccept、AfdReceive、AfdTransmitFile、AfdQueryHandles 等等。每个 handler 对应一个用户态可调用的套接字操作。传统的研究思路是逐 handler 审计代码,寻找内存损坏或逻辑错误。
但 Angelboy 发现了一个关键盲区:这些 handler 需要与底层传输驱动交互,而底层驱动往往假设来自 AFD 的输入已经被验证过了。
步骤二:组装攻击面
演讲者演示了一个惊人的技术——传输层组合(Transport Composition)。通过枚举系统中所有可以被 AFD 的 TDI 模式接受的设备,演讲者发现了大量非预期的传输驱动,包括:
-
tdx.sys(TDI 扩展层) -
NetBT.sys(NetBIOS over TCP/IP 传输) -
ndis.sys(网络驱动接口规范核心驱动) -
rfcomm.sys(蓝牙 RFCOMM 驱动)
这些驱动从未被设计为接受来自用户态通过 AFD 间接发起的调用。它们缺乏对输入的严格校验,导致了一系列漏洞:
-
tdx.sys:CVE-2025-49658、CVE-2025-49659 -
tcpip.sys:CVE-2025-54093 -
rfcomm.sys:CVE-2025-59513 -
netbt.sys:CVE-2025-55230、CVE-2025-47996 -
ndis.sys:CVE-2025-55679、CVE-2025-55339
步骤三:组装漏洞
传输层组合只是第一步。更危险的情况出现在利用 Windows 对象管理器(Object Manager)的符号链接机制进行路径重定向时。演讲者展示了这样的攻击链:
-
创建一个使用 NDIS 作为传输驱动的 AFD 套接字。NDIS 在套接字创建时会将
TdiServiceFlags设置为 0(既不设置Is\_Bind也不设置Is\_Connect等标志位),这意味着它不设置TDI\_SERVICE\_FORCE\_ACCESS\_CHECK标志。 -
在套接字绑定阶段,通过符号链接将传输设备路径从
\Device\ndis重定向到任意目标设备(如\Device\NetBT或\Device\MountPointManager)。 -
调用
AfdQueryHandlesIOCTL。这个函数将Endpoint->AddressFileObject转换为用户句柄,调用ObOpenObjectByPointer并请求MAXIMUM\_ALLOWED访问权限。关键在于AccessMode参数——如果TdiServiceFlags中未设置访问检查标志,AccessMode将是KernelMode,从而绕过所有安全检查,返回一个拥有完整访问权限的用户态句柄。 -
持有 Mount Manager 的全权句柄后,攻击者可以执行
IOCTL\_MOUNTMGR\_CREATE\_POINT等特权操作,将系统目录重定向到攻击者控制的路径,最终通过 Windows Media Sharing 服务的 DLL 劫持实现从 Network Service 到 SYSTEM 的提权。
这个利用链不涉及任何内存损坏,不涉及竞态条件,是一个 100% 成功的纯逻辑漏洞利用。而且,存在漏洞的逻辑在代码库中存在了近 20 年。
五、文件组合链
演讲者还展示了另一条攻击路径(CVE-2026-25176):使用类似的符号链接重定向技术,将传输设备路径从 \Device\ndis 重定向到一个文件系统路径(如 \??\C:\Windows\System32\...)。在套接字连接阶段,AFD 将通过 IoCreateFile 调用目标,由于同样缺失 IO\_FORCE\_ACCESS\_CHECK 标志,低权限用户可以在受保护的目录中创建任意文件。
通过劫持 Microsoft Edge Elevation Service 加载的 ntasn1.dll,攻击者可以从任意文件创建直接升级到 SYSTEM 权限。
▲ CVE-2026-25176:通过符号链接将传输设备路径重定向到文件系统路径,触发缺少访问检查的 IoCreateFile(来源:Black Hat USA 2026 Slides)
微软在 2026 年的补丁中分别修复了 AfdQueryHandles 和 AfdCreateConnection 的访问检查缺失问题——但演讲者指出,新的绕过(CVE-2026-26182、CVE-2026-34335 等)已经被发现,并在演讲中以一个新的 CVE 列表作为结尾。
六、超越传统攻击面
演讲的最后部分探讨了 AFD 在 LPAC(Less Privileged AppContainer)环境下的沙箱逃逸可能性。LPAC 限制了 TCP/UDP 连接、符号链接访问和大多数设备的访问——但在 TLI 传输模式下,AF_UNIX(Unix 域套接字)和 AF_HYPERV(Hyper-V 套接字)仍然可以从 LPAC 中访问。演讲者已经在此基础上发现了一系列新的漏洞(CVE-2026-26168、CVE-2026-26177、CVE-2026-45601 等)。
▲ LPAC 环境下 TLI 传输模式:AF_UNIX 与 AF_HYPERV 套接字仍可从 LPAC 访问(来源:Black Hat USA 2026 Slides)
七、启示与思考
Angelboy 的这次演讲从表面上看是一个关于特定 Windows 内核驱动的漏洞挖掘案例,但它传递了更深层的方法论启示:
1. 跨层组合视角:单独审视 AFD 本身可能看不到太多问题,但将 AFD 与底层传输驱动、对象管理器、符号链接机制组合起来看,攻击面急剧扩大。驱动不是孤岛——它们之间的接口和假设就是漏洞藏身之处。
2. 过度信任上游输入:底层传输驱动默认认为 AFD 传来的请求已经经过校验,这种”信任传递”是许多漏洞的根源。跨层边界上的每一条假设都值得重新审视。
3. 攻击面不会自然收敛:经过多年补丁,AFD 看似应该变得更安全,但新功能带来了新的 IOCTL handler 和新的代码路径。安全加固的速度如果不跟上功能扩展的速度,攻击面就会增长。
4. 逻辑漏洞的价值:本次发现的利用链不依赖内存损坏,具有 100% 的可靠性和跨版本稳定性。对防御方而言,逻辑漏洞更难通过通用缓解措施(如 CFG、ACG)来拦截,值得给予更多关注。
对于安全研究人员而言,这套”漏洞组装”方法论也适用于其他内核驱动。只要有跨组件交互、有隐式的信任关系、有多条代码路径实现类似功能——就可能有漏洞等待被组装。
◆ ◆ ◆
原文链接:https://www.blackhat.com/us-26/briefings/schedule/#vulnerabilities-assembled-the-vulnerability-factory-inside-the-windows-kernel-52366
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:AIxSec69 AIxSec69 AIxSec69《漏洞组装工厂:AFD 驱动中的 Windows 内核漏洞挖掘方法论》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论