安全研究人员 Valentina Palmiotti(chompie)与 Ruben Boonen 公开了 CVE-2023-21768 的公开概念验证利用代码。该漏洞位于 Windows 处理 WinSock 网络接口请求的内核驱动 afd.sys 中,拥有本地低权限的攻击者可在无需用户交互的情况下提权至 SYSTEM。
该漏洞并非新披露问题,微软已于 2023 年 1 月完成修复,IBM 则在 2023 年 3 月 21 日发布研究人员的相关技术分析。公开代码被描述为演示性质,完整提权链针对存在漏洞的 Windows 11 22H2 系统。
漏洞与影响范围
CVE-2023-21768 的 CVSS 评分为 7.8,利用该漏洞需要攻击者已具备本地低权限,且不需要用户交互。它不能为攻击者提供从互联网直接进入目标计算机的路径,因此其风险主要集中在已获得本地立足点的场景。
问题出在 afd.sys,这是 Windows 内核中处理 WinSock 网络接口请求的驱动。由于该驱动运行在内核态,其中缺失的检查使本地攻击者能够写入内核内存,而 Windows 在该区域存放敏感系统数据。
公开的概念验证代码被描述为演示性质,完整提权链针对存在漏洞的 Windows 11 22H2 系统;代码所依赖的内存写入能力则适用于其他存在漏洞的系统。仓库并未承诺完整利用代码兼容所有受影响的 Windows 版本。
修复与研究经过
IBM 于 2023 年 3 月 21 日发布研究人员的相关技术分析,公开代码则是在此后才对外释出。
据 IBM 的技术分析,研究人员对比了 2022 年 12 月与 2023 年 1 月的驱动版本,以理解微软的修复方式。他们发现只有一个函数 AfdNotifyRemoveIoCompletion 出现变化,据此缩小了排查范围。
旧版本代码未对用户应用程序提供的内存指针进行校验,微软更新后的代码增加了验证,确保来自用户模式的指针指向合适的用户空间内存,而非受保护的内核地址。
研究人员表示,尽管此前没有接触过该驱动,他们在大约一天内完成了诊断、复现并将漏洞转化为可用利用代码。这一过程也说明,对比已修补与未修补的软件足以快速还原出构建攻击所需的细节。
利用链如何运作
为从有限的内存写入扩展到更广泛的控制,该利用代码修改了 Windows 的 I/O ring 对象。这类对象用于支持排队的输入输出工作,相关技术建立在 Yarden Shafir 的研究之上,可实现内核内存的读写。
在获得内核读写能力后,利用代码将目标进程的安全令牌替换为带有 SYSTEM 权限的令牌,从而完成提权。
IBM 还报告称,360 IceSword Lab 于 2023 年 1 月发现了另一个在野利用样本,该样本使用 ProcessSocketNotifications 接口,而非研究人员直接针对驱动的方式。相关报告并未证明攻击者使用过公开的 GitHub 代码。
防护建议
管理员应确认受影响设备已安装微软的修复补丁或后续适用的更新。由于该漏洞的修复已发布多年,未及时更新的系统仍可能暴露在风险之中。
IBM 的演示在未被 HVCI 拦截的情况下仍然成功,这表明基于虚拟化的代码完整性保护不能替代打补丁。
同一驱动还涉及 CVE-2024-38193 与 CVE-2025-32709 等其他漏洞,它们成因与补丁各不相同,需要分别对待,不能因已修复其中一个而放松对其余漏洞的排查。
要点
- 漏洞编号为 CVE-2023-21768,CVSS 评分 7.8
- 漏洞位于 afd.sys 内核驱动,需本地低权限
- 微软已于 2023 年 1 月修复该漏洞
- 研究人员约一天内完成复现与利用开发
- 利用代码可替换进程令牌获取 SYSTEM 权限

正在读取登录状态…
暂无讨论,说说你的看法吧