CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-32952

CVE-2026-32952: Denial of Service via Slice Panic in Azure go-ntlmssp

Amit Schendel
Amit Schendel
Senior Security Researcher

Apr 24, 2026·6 min read·49 visits

Executive Summary (TL;DR)

A missing bounds check in the NTLM Type 2 message parser of Azure go-ntlmssp allows malicious servers to crash the client application via an out-of-bounds slice panic.

The Azure go-ntlmssp package prior to version 0.1.1 contains a denial-of-service vulnerability stemming from improper input validation. Malicious servers can trigger an unrecoverable Go panic by supplying a crafted NTLM Challenge message, terminating the client application process.

Vulnerability Overview

The go-ntlmssp package provides NTLM/Negotiate authentication capabilities over HTTP for Go applications. Developers typically use it as a wrapper for http.RoundTripper to authenticate outgoing requests seamlessly. The vulnerability exists in how the library parses NTLM Challenge (Type 2) messages returned by the server during the negotiation phase.

NTLM authentication involves a multi-step handshake. When a client attempts to access a protected resource, the server responds with an HTTP 401 Unauthorized status and an NTLM Type 2 Challenge message. This message contains various data structures, including the Target Name and Target Info fields, which are located via offsets and lengths specified in the message header.

The parser in vulnerable versions of go-ntlmssp extracts these offset and length values directly from the server's response and uses them to slice a byte array containing the payload. The lack of validation on these extracted values constitutes a CWE-190 (Integer Overflow or Wraparound) condition, leading directly to a slice bounds out-of-range operation.

Root Cause Analysis

The root cause of CVE-2026-32952 is the absence of bounds checking prior to executing Go slice operations on network-provided data. NTLM messages utilize a specific header structure to define variable-length fields. Each descriptor consists of an 8-byte block containing a 2-byte Length, a 2-byte Max Length, and a 4-byte Offset.

When the ntlmssp.Negotiator receives the Type 2 message, it decodes the Base64 payload and reads these descriptors. It converts the Little-Endian byte sequences into Go integer types (uint16 and uint32). The code then retrieves the field data by slicing the payload byte array using the extracted variables.

If a server provides a maliciously crafted descriptor, it can specify an Offset or Length combination that exceeds the total size of the received payload byte slice. In Go, attempting to access a slice index outside its capacity triggers an immediate runtime panic. Because this parsing occurs within the RoundTrip execution path of an HTTP client, the unhandled panic unwinds the stack and crashes the entire application.

Code Analysis

To understand the mechanics of the panic, it is necessary to examine the interaction between the parsed NTLM headers and Go's slice syntax. The vulnerability materializes when the code attempts to extract variable-length data based on untrusted inputs.

The vulnerable implementation directly applies the parsed offset and length variables to the byte slice. The logic resembles the following sequence:

// Vulnerable pattern
length := binary.LittleEndian.Uint16(payload[descriptorOffset : descriptorOffset+2])
offset := binary.LittleEndian.Uint32(payload[descriptorOffset+4 : descriptorOffset+8])
// The following line panics if offset+uint32(length) > uint32(len(payload))
fieldData := payload[offset : offset+uint32(length)]

The fix introduces strict validation logic to ensure that neither the offset nor the computed end boundary exceeds the actual length of the payload. The patched implementation verifies these constraints before attempting the slice operation.

// Patched pattern
length := uint32(binary.LittleEndian.Uint16(payload[descriptorOffset : descriptorOffset+2]))
offset := binary.LittleEndian.Uint32(payload[descriptorOffset+4 : descriptorOffset+8])
 
// Bounds validation added to prevent slice panic
if offset > uint32(len(payload)) || offset+length > uint32(len(payload)) {
    return nil, errors.New("invalid NTLM descriptor bounds")
}
 
fieldData := payload[offset : offset+length]

By returning an error instead of executing the invalid slice operation, the application correctly handles the malformed HTTP response without crashing.

Exploitation Mechanics

Exploitation requires the attacker to control the HTTP server responding to the client's requests, or to operate in a Man-in-the-Middle (MitM) position capable of intercepting and modifying the HTTP traffic. The target application must be configured to use go-ntlmssp to authenticate against the attacker-controlled endpoint.

When the client initiates the connection, the attacker responds with an HTTP 401 Unauthorized status code. The response includes a WWW-Authenticate: NTLM <base64_payload> header. The base64 payload encodes a structurally valid NTLM Type 2 message, but with manipulated descriptor fields. The attacker sets the Target Name offset to 0xFFFFFFFF or specifies a length that guarantees the addition overflows or exceeds the actual payload size.

Upon receiving the 401 response, the go-ntlmssp RoundTripper intercepts the response and attempts to parse the challenge to formulate a Type 3 Authenticate message. The parser extracts the malformed descriptors, executes the out-of-bounds slice operation, and triggers the panic.

Impact Assessment

The direct impact of CVE-2026-32952 is a Denial of Service (DoS) against the client application utilizing the go-ntlmssp package. While often viewed as less critical than Remote Code Execution, DoS via unhandled panics in Go applications carries significant operational consequences.

In Go, a panic triggered in a goroutine that is not subsequently caught by a deferred recover() function will terminate the entire process. If the application acts as an API gateway, a backend microservice, or an orchestration tool, a single malicious NTLM challenge can halt all operations, affecting all users and requests currently being processed by the binary.

The CVSS v3.1 score of 5.3 (Medium) reflects the strict constraints of the attack vector. The availability impact is categorized as Low (A:L) under CVSS methodologies because the vulnerability primarily affects the individual client instance rather than a centralized, shared resource. However, in modern microservice architectures where clients perform critical backend polling or webhook delivery, the practical impact on service availability can be severe.

Remediation and Mitigation

The primary remediation for CVE-2026-32952 is upgrading the go-ntlmssp dependency to version 0.1.1 or later. This version implements the necessary bounds checking required to safely parse NTLM message headers. Developers should update their go.mod files and verify the dependency tree.

If immediate patching is not feasible due to deployment freezes or complex dependency conflicts, developers must implement structural mitigations within their own application code. The most effective workaround involves utilizing Go's recover() mechanism.

By wrapping the HTTP client invocation or the execution of the RoundTripper in a goroutine with a deferred recovery function, developers can catch the panic before it crashes the parent process. While this prevents the complete termination of the service, the specific HTTP request will still fail, and resource cleanup must be handled manually to prevent memory leaks.

Official Patches

AzureOfficial GitHub Release v0.1.1

Technical Appendix

CVSS Score
5.3/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Affected Systems

github.com/Azure/go-ntlmssp (Go package)

Affected Versions Detail

Product
Affected Versions
Fixed Version
go-ntlmssp
Azure
< 0.1.10.1.1
AttributeDetail
CWE IDCWE-190
Attack VectorNetwork
CVSS v3.1 Score5.3
ImpactDenial of Service (Process Crash)
Exploit StatusProof of Concept available
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1203Exploitation for Client Execution
Execution
T1499Endpoint Denial of Service
Impact
CWE-190
Integer Overflow or Wraparound

The software performs a calculation that can produce an integer overflow or wraparound, which results in out-of-bounds memory access.

Vulnerability Timeline

Vulnerability published to GitHub Advisory Database
2026-04-23
CVE-2026-32952 assigned and published to NVD
2026-04-24
Version 0.1.1 released by Azure to address the panic
2026-04-24

References & Sources

  • [1]GitHub Security Advisory GHSA-pjcq-xvwq-hhpj
  • [2]v0.1.1 Release Notes
  • [3]CVE.org Record
  • [4]NVD Vulnerability Detail

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•GHSA-G72G-R7M4-9X4G
6.3

GHSA-G72G-R7M4-9X4G: Insufficient Session Expiration of OAuth Tokens in NocoDB

NocoDB is subject to an insufficient session expiration vulnerability where OAuth access and refresh tokens are not invalidated or revoked during security-sensitive actions such as password changes, forgot-password requests, or password resets. This allows an attacker possessing an active OAuth token to maintain unauthorized persistence.

Amit Schendel
Amit Schendel
8 views•6 min read
•1 day ago•GHSA-FGMC-2HQJ-86V4
6.9

GHSA-FGMC-2HQJ-86V4: Default Administrative Credentials in vantage6-server

A vulnerability in the vantage6 federated learning framework allows unauthenticated remote attackers to gain administrative control of the server via hardcoded default credentials (root/root) when deployed under default configurations in versions 4.2.3 and below.

Amit Schendel
Amit Schendel
8 views•5 min read
•1 day ago•GHSA-X9F6-9RVM-MMRG
6.9

GHSA-X9F6-9RVM-MMRG: Improper Access Control and Volume Mount Isolation Bypass in vantage6 Node

An improper access control vulnerability in the vantage6 node component allows concurrently running algorithm containers to read and modify sensitive input and output files of other tasks. The lack of strict workspace directory isolation exposes a significant attack surface in multi-tenant or federated environments where untrusted algorithms are executed.

Amit Schendel
Amit Schendel
3 views•4 min read
•2 days ago•CVE-2026-47760
8.7

CVE-2026-47760: Cross-Site Scripting (XSS) via SVG Namespace Sanitizer Bypass in TinyMCE

TinyMCE versions 6.8.0 through 7.0.1 contain a high-severity Cross-Site Scripting (XSS) vulnerability. The flaw exists in the custom HTML parser and sanitizer module, which incorrectly manages SVG namespace scopes when parsing nested elements. A low-privileged or unauthenticated attacker can submit a crafted HTML payload containing nested SVG structures to bypass sanitization filters, leading to arbitrary JavaScript execution in the context of the victim's browser session.

Alon Barad
Alon Barad
14 views•7 min read
•2 days ago•CVE-2026-47759
8.7

CVE-2026-47759: Stored Cross-Site Scripting (XSS) via Unsanitized data-mce-* Serialization Bypass in TinyMCE

CVE-2026-47759 is a critical stored Cross-Site Scripting (XSS) vulnerability affecting multiple active branches of the TinyMCE rich text editor. The flaw resides in the editor's handling of user-controlled, prefixed internal attributes, such as data-mce-href, data-mce-src, and data-mce-style. When processing raw HTML inputs, TinyMCE's internal validation schema neglects to inspect these custom prefixed attributes. During HTML serialization, the editor's engine extracts these unsanitized values and copies them back into standard executable attributes, overwriting any previously sanitized standard values and leading to execution of arbitrary code.

Amit Schendel
Amit Schendel
9 views•7 min read
•2 days ago•CVE-2026-47762
8.7

CVE-2026-47762: Stored Cross-Site Scripting (XSS) in TinyMCE Protect Pattern Restoration

A high-severity stored Cross-Site Scripting (XSS) vulnerability was identified in the TinyMCE rich text editor. The flaw exists in the handling of the 'protect' configuration option, where forged placeholder comments containing malicious payloads bypass the editor's sanitization routines and execute arbitrary JavaScript during serialization and content restoration.

Amit Schendel
Amit Schendel
7 views•8 min read