DavidCarliez/CVE-2026-54992-PoC

GitHub: DavidCarliez/CVE-2026-54992-PoC

该项目是 CVE-2026-54992 的概念验证,复现了 Microsoft MSMQ 远程读取整数溢出导致的拒绝服务漏洞。

Stars: 5 | Forks: 0

# CVE-2026-54992 PoC 这是针对编号为 CVE-2026-54992 的 Microsoft Message Queuing 远程读取整数 溢出的概念验证。 此 PoC 使用了两台 Windows 虚拟机。漏洞目标上的普通用户请求 本地 MSMQ 服务从辅助机托管的队列中读取数据。辅助机返回 一个格式错误的 MS-MQRR 响应,导致目标机上的 `mqsvc.exe` 崩溃。该 PoC 演示了拒绝服务攻击;它并未演示代码执行。 ## 根本原因 `mqqm.dll` 分别验证每个返回的数据包部分,但在受影响的 版本中,它使用 32 位值累加其分配长度,而没有检查 是否存在总和溢出。此 PoC 提供的部分长度为 `0x2000` 和 `0xffffe010`。它们的数学总和为 `0x100000010`,发生溢出截断后变为 `0x10`。 MSMQ 使用溢出后的尺寸分配数据包存储空间,随后按照 原始部分长度进行处理,最终导致越界写入。 ## 构建 使用 MinGW-w64 构建这两个 x64 二进制文件,然后将该文件夹复制到两台 Windows 虚拟机上: ``` make clean all ``` ## 运行 在隔离的网络中使用两台一次性的 Windows 虚拟机。辅助机和真正的 MSMQ 服务都使用 TCP 端口 2105,因此它们必须运行在不同的机器上。 在漏洞目标机上,从提权的 PowerShell 窗口中运行: ``` Set-ExecutionPolicy -Scope Process Bypass .\setup-target.ps1 ``` 在辅助机虚拟机上,从提权的 PowerShell 窗口中运行: ``` Set-ExecutionPolicy -Scope Process Bypass .\start-emulator.ps1 ``` 接着,在目标机上,从普通的非提权 PowerShell 窗口中运行,并将 地址替换为辅助机虚拟机的 IPv4 地址: ``` .\invoke-crash.ps1 -Server 192.168.122.53 -IUnderstandThisWillCrashMSMQ ``` 在受影响的构建版本上,`mqsvc.exe` 将终止,并且 MSMQ 会停止,服务退出 代码为 1067。要重置实验环境,请在辅助机上运行 `restore-helper.ps1`,并在目标机上重新启动 MSMQ。
标签:AI合规, Maven, PoC, 客户端加密, 暴力破解, 漏洞验证, 配置错误