CVE-2024-6768漏洞分析

2025-01-11 19 0

简介

CVE-2024-6768 是 Windows 通用日志文件系统 (CLFS.sys) 驱动程序中的一个漏洞,由输入数据中指定数量的验证不当引起。此漏洞导致不可恢复的不一致,触发 KeBugCheckEx 函数并导致蓝屏死机 (BSoD)。尽管已应用所有更新,但该问题仍会影响 Windows 10 和 Windows 11、Windows Server 2016、Server 2019 和 Server 2022 的所有版本。概念验证 (PoC) 表明,通过在 .BLF 文件中制作特定值,非特权用户可以导致系统崩溃。潜在的问题包括系统不稳定和拒绝服务,因为恶意用户可以利用此漏洞反复使受影响的系统崩溃,从而中断操作并可能导致数据丢失。

漏洞详情

此漏洞是由输入中指定数量的不正确验证 (CWE-1284) 引起的,这会导致 CLFS.sys 驱动程序中出现不可恢复的不一致,从而强制调用 KeBugCheckEx 函数,这允许非特权用户在 Windows 中产生 BSoD。在本文档中,我使用 CLFS.sys 版本 10.0.19041.3324 作为示例,但此问题影响所有版本,直至最新版本的 Windows 10 和 Windows 11,并应用了所有更新。

基本分数:CVSS 4.0:6.8 中等

向量字符串 CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

攻击向量 (AV):本地

攻击复杂度 (AC):低

攻击要求 (AT):无

所需权限 (PR):低

用户交互 (UI):无

机密性 (VC):无

完整性 (VI):无

可用性 (VA):高

机密性 (SC):无

完整性 (SI):无

可用性 (SA):无

系统检测到不可恢复状态后,会调用 KeBugCheckEx 函数,从而导致 BSoD,如 Microsoft 的一篇文章中所述。
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-kebugcheckex
CVE-2024-6768漏洞分析插图
CClfsLogFcbPhysical::FlushLog+6F2 是 CLFS.sys 版本 10.0.19041.3324 中产生对 KeBugCheckEx 调用的地址:

CClfsLogFcbPhysical::FlushLog+6D5  loc_FFFFF8062EED4F35:   ; BugCheckParameter2
CClfsLogFcbPhysical::FlushLog+6D5  mov    r8d, eax
CClfsLogFcbPhysical::FlushLog+6D8  and    [rsp+0A8h+Timeout], 0
CClfsLogFcbPhysical::FlushLog+6DE  mov    r9, rbx         ; BugCheckParameter3
CClfsLogFcbPhysical::FlushLog+6E1  mov    edx, 3Ah ; ':'  ; BugCheckParameter1
CClfsLogFcbPhysical::FlushLog+6E6  mov    ecx, 0C1F5h     ; BugCheckCode
CClfsLogFcbPhysical::FlushLog+6EB  mov    r10, cs:__imp_KeBugCheckEx
CClfsLogFcbPhysical::FlushLog+6F2  call   near ptr nt_KeBugCheckEx

构建 PoC

要开始分析,必须了解 .BLF 文件格式,该文件格式由位于文件夹 %windir%\system32 中的易受攻击的通用日志文件系统驱动程序 CLFS.sys 处理。

54.blf 文件在偏移量 0x1c10 处有一个精心设计的值 (0xffffffff00ff01)。
CVE-2024-6768漏洞分析插图1

这个精心设计的值位于 _CLFS_CLIENT_CONTEXT 结构的偏移量 0x38 处。它被复制到 CClfsLogFcbPhysical::Initialize 中,并被复制到 CClfsLogFcbPhysical 结构的偏移量 0x538 处。
CVE-2024-6768漏洞分析插图2

CLFSHASHSYM 结构以 cidNode = 0xC1FDF006 开头,并以蓝色突出显示:

CVE-2024-6768漏洞分析插图3

之后,_CLFS_CLIENT_CONTEXT 结构以 cidNode == 0xC1FDF007 开头。

字段 lsnOwnerPage 位于偏移量 0x38,将用精心设计的值 0xffffffff00ff01 填充:
CVE-2024-6768漏洞分析插图4
当执行 PoC 时,它会构造 lsnOwnerPage 的值并调用 CreateLogFile。所提到的值在 UpdateCachedOwnerPage 中使用,如下面的调用堆栈所示:
CVE-2024-6768漏洞分析插图5
这是 PoC 调用 CreateLogFile 并开始使用精心制作的值的地址:
CVE-2024-6768漏洞分析插图6
CVE-2024-6768漏洞分析插图7
CVE-2024-6768漏洞分析插图8
AddLsnOffset 内部返回一个 ulloffset,它是根据这个精心设计的值计算出来的:
CVE-2024-6768漏洞分析插图9
返回的 ulloffset 是 0xFFFFFFFF00000000:
CVE-2024-6768漏洞分析插图10
之后,比较此值并退出函数CClfsLogFcbPhysical::UpdateCachedOwnerPage:
CVE-2024-6768漏洞分析插图11
之后,它返回到用户模式下的 PoC,并在退出时使用原始制作的 ullofset 调用 CClfsLogFcbPhysical::FlushLog:
CVE-2024-6768漏洞分析插图12
这是一个循环比较的结果,如果在任何循环中都不相等,则由于系统处于不可恢复状态,它会调用 KeBugCheck,从而产生 BSoD 以重新启动系统:
CVE-2024-6768漏洞分析插图13
CVE-2024-6768漏洞分析插图14


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

RequestShield:一款HTTP请求威胁识别与检测工具
2025年十大最佳漏洞管理工具分享
Redis漏洞利用与SSH免密反弹Shell
LIEF:用于解析和修改 ELF, PE 和MachO 格式的跨平台库
网络安全市场的“冬天”还长
Shiro CVE-2020-1957详细分析

发布评论