CVE-2026-32952
Medium · 5.3CVSS
5.3
EPSS
1.5%
Published
Apr 24, 2026
CISA due date
—
Cloudanix analysis
A flaw in a Go authentication library can let a malicious server crash applications that use it to log in with NTLM.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
The flaw is a denial-of-service condition in the Go go-ntlmssp NTLM/Negotiate HTTP authentication implementation before version 0.1.1. When code using ntlmssp.Negotiator as an HTTP transport processes a specially crafted NTLM challenge message, the parser can access a slice out of bounds and trigger a Go runtime panic. If the application does not recover from that panic, the entire Go process can terminate, interrupting any service or job that depends on the affected process. The issue does not provide code execution, data disclosure, or authentication bypass; the primary impact is process availability.
Why it matters to the business
Applications, agents, services, or integration jobs that use the affected NTLM HTTP transport can be crashed remotely by a malicious or compromised NTLM-speaking endpoint, causing outages, failed authentication workflows, interrupted automation, and degraded service reliability. The CVSS score is moderate and EPSS is low and flat, with no known CISA KEV listing or ransomware association, but internet-reachable or high-availability services that authenticate to NTLM endpoints should still prioritize patching because exploitation is simple once an attacker can present a malicious NTLM challenge.
How an attack unfolds
An attacker positions a malicious HTTP endpoint, compromises an upstream NTLM-authenticated service, or obtains a network position that allows them to return NTLM authentication challenges to a vulnerable Go client. The vulnerable application initiates an HTTP request using go-ntlmssp's ntlmssp.Negotiator transport. During the NTLM handshake, the attacker sends a malformed NTLM challenge message with fields that cause the package's parser to index beyond the bounds of a slice. The Go runtime raises a slice-bounds panic. Unless the application has a recovery boundary around the affected request path, the panic propagates and terminates the process, causing a denial of service. Repeated requests or connection attempts can keep the service unstable until the package is upgraded or the malicious endpoint is blocked.
How to fix it
Upgrade go-ntlmssp to version 0.1.1 or later in all Go applications, agents, and services that use NTLM/Negotiate authentication over HTTP. Because the advisory lists the fix in version 0.1.1 even though no structured fixed_versions field was provided, treat 0.1.1 as the minimum safe version. Regenerate dependency lock files, rebuild affected binaries, and redeploy all statically linked Go artifacts that include the vulnerable package. Where immediate upgrade is not possible, reduce exposure by restricting outbound HTTP authentication to trusted NTLM endpoints, blocking untrusted NTLM challenge sources, disabling NTLM authentication where feasible, and adding panic recovery around request-handling or background-job boundaries to reduce process-wide crashes. Panic recovery is a resilience mitigation, not a substitute for upgrading the dependency.
How to confirm the fix worked
Confirm that dependency manifests and resolved module versions show go-ntlmssp at version 0.1.1 or later. Use Go module tooling such as `go list -m all` and software composition analysis to identify binaries built with vulnerable versions. Rebuild and redeploy applications after the dependency update, since Go binaries are commonly statically linked. Validate the fix by running unit or integration tests that exercise NTLM authentication against normal and malformed challenge responses and confirming the process does not panic. Operationally, monitor after deployment for the absence of Go panic stack traces referencing go-ntlmssp or ntlmssp.Negotiator during NTLM authentication flows.
Typical attack path
- Identify an application or service that uses the vulnerable go-ntlmssp package for NTLM/Negotiate authentication over HTTP.
- Cause the vulnerable process to connect to an attacker-controlled or compromised HTTP endpoint that offers NTLM authentication, or intercept traffic where NTLM challenge messages can be manipulated.
- Return a crafted NTLM challenge message during the authentication handshake.
- Trigger a Go slice-bounds panic in the vulnerable NTLM challenge parsing logic.
- Rely on the unhandled panic to crash the Go process and disrupt the dependent service or workflow.
- Repeat the interaction as needed to sustain the denial of service until the vulnerable dependency is patched or traffic is blocked.
How to detect it
To determine whether exploitation already occurred, review application logs, crash dumps, container termination records, systemd or supervisor restart logs, Kubernetes pod restart events, and APM/error-monitoring traces for Go runtime panics during NTLM or Negotiate authentication. Focus on timestamps where services restarted unexpectedly or HTTP authentication to NTLM endpoints failed. Look for panic messages indicating slice-bounds errors, stack traces referencing go-ntlmssp, ntlmssp.Negotiator, NTLM challenge parsing, or HTTP transport authentication. Correlate crashes with outbound HTTP requests to unfamiliar or recently changed NTLM endpoints and with inbound responses containing `WWW-Authenticate: NTLM` or NTLMSSP challenge data. Network telemetry may show repeated NTLM handshakes followed by abrupt client connection resets or process restarts. There are no known public threat actors or KEV-listed exploitation campaigns for this issue, so detection should focus on crash artifacts and suspicious NTLM challenge sources rather than actor-specific infrastructure.
- panic: runtime error: slice bounds out of range
- panic: runtime error: index out of range
- github.com/Azure/go-ntlmssp
- go-ntlmssp
- ntlmssp.Negotiator
- WWW-Authenticate: NTLM
- Authorization: NTLM
- NTLMSSP
- Negotiate NTLM
- slice bounds out of range [:
- runtime.goexit
What your security team should do
- Inventory Go applications and binaries that perform NTLM/Negotiate authentication over HTTP and identify use of microsoft/go-ntlmssp or github.com/Azure/go-ntlmssp.
- Prioritize externally exposed services, high-availability workloads, authentication gateways, automation agents, and integrations that connect to NTLM-capable endpoints.
- Upgrade the dependency to go-ntlmssp version 0.1.1 or later, regenerate lock files, rebuild binaries, and redeploy affected services.
- Restrict vulnerable applications so they can authenticate only to trusted NTLM endpoints until patching is complete.
- Search centralized logs and crash reporting systems for Go panic messages and stack traces involving NTLM challenge handling, go-ntlmssp, or ntlmssp.Negotiator.
- Add service supervision, restart policies, and panic recovery where appropriate to limit outage duration, while treating these as compensating controls only.
- Because EPSS is low, flat, and the issue is not in CISA KEV, handle through normal vulnerability remediation SLAs unless the affected service is internet-facing, mission-critical, or exposed to untrusted NTLM endpoints.
The record
go-ntlmssp is a Go package that provides NTLM/Negotiate authentication over HTTP. Prior to version 0.1.1, a malicious NTLM challenge message can causes an slice out of bounds panic, which can crash any Go process using `ntlmssp.Negotiator` as an HTTP transport. Version 0.1.1 patches the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | cmctl | 0 | 2.5.0-1.1 |
| openSUSE:Tumbleweed | rclone | 0 | 1.74.0-1.1 |
Related vulnerabilities
- CVE-2026-49980 Rclone is a command-line program to sync files and directories to and from different… Also affects rclone
- CVE-2026-42507 When returning errors, functions in the net/textproto package would include its input as… Also affects rclone
- CVE-2026-42504 Decoding a maliciously-crafted MIME header containing many invalid encoded-words can… Also affects rclone
- CVE-2026-27145 (*x509.Certificate).VerifyHostname previously called matchHostnames in a loop over all… Also affects rclone
- CVE-2026-44740 Billy is an interface filesystem abstraction for Go. Also affects rclone
- CVE-2026-42500 Decoding a paletted BMP file with an out-of-range palette index results in a panic when… Also affects rclone
- CVE-2026-39824 NewNTUnicodeString does not check for string length overflow. Also affects rclone
- CVE-2026-27136 Parsing arbitrary HTML which is then rendered using Render can result in an unexpected… Also affects rclone