{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-97054","assignerOrgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","state":"PUBLISHED","assignerShortName":"Go","dateReserved":"2026-09-23T23:05:04.988Z","datePublished":"2026-11-11T03:13:17.877Z","dateUpdated":"2026-11-11T03:13:17.877Z"},"containers":{"cna":{"providerMetadata":{"orgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","shortName":"Go","dateUpdated":"2026-11-11T03:13:17.877Z"},"title":"HTTP/1 server crash due to MaxBytesReader header race in net/http","descriptions":[{"lang":"en","value":"For HTTP/1 servers, when MaxBytesReader's limit is exceeded, \"Connection: close\" header is automatically set without synchronization, which might race with another header being set explicitly in the server handler. As a result, an HTTP/1 server that utilizes MaxBytesReader or MaxBytesHandler can crash due to runtime panic if its handler reads the request body concurrently with writing the response header."}],"affected":[{"vendor":"Go standard library","product":"net/http","collectionURL":"https://pkg.go.dev","packageName":"net/http","versions":[{"version":"0","lessThan":"1.26.11","status":"affected","versionType":"semver"},{"version":"1.27.0-0","lessThan":"1.27.4","status":"affected","versionType":"semver"}],"programRoutines":[{"name":"maxBytesReader.Read"},{"name":"CanonicalHeaderKey"},{"name":"Client.CloseIdleConnections"},{"name":"Client.Do"},{"name":"Client.Get"},{"name":"Client.Head"},{"name":"Client.Post"},{"name":"Client.PostForm"},{"name":"ClientConn.Close"},{"name":"ClientConn.RoundTrip"},{"name":"Cookie.String"},{"name":"Cookie.Valid"},{"name":"CrossOriginProtection.AddInsecureBypassPattern"},{"name":"CrossOriginProtection.AddTrustedOrigin"},{"name":"CrossOriginProtection.Check"},{"name":"Dir.Open"},{"name":"Error"},{"name":"Get"},{"name":"Handle"},{"name":"HandleFunc"},{"name":"HandlerFunc.ServeHTTP"},{"name":"Head"},{"name":"Header.Add"},{"name":"Header.Del"},{"name":"Header.Get"},{"name":"Header.Set"},{"name":"Header.Values"},{"name":"Header.Write"},{"name":"Header.WriteSubset"},{"name":"ListenAndServe"},{"name":"ListenAndServeTLS"},{"name":"NewRequest"},{"name":"NewRequestWithContext"},{"name":"NotFound"},{"name":"ParseCookie"},{"name":"ParseSetCookie"},{"name":"ParseTime"},{"name":"Post"},{"name":"PostForm"},{"name":"ProxyFromEnvironment"},{"name":"ReadRequest"},{"name":"ReadResponse"},{"name":"Redirect"},{"name":"Request.AddCookie"},{"name":"Request.BasicAuth"},{"name":"Request.Cookie"},{"name":"Request.Cookies"},{"name":"Request.CookiesNamed"},{"name":"Request.FormFile"},{"name":"Request.FormValue"},{"name":"Request.MultipartReader"},{"name":"Request.ParseForm"},{"name":"Request.ParseMultipartForm"},{"name":"Request.PostFormValue"},{"name":"Request.Referer"},{"name":"Request.SetBasicAuth"},{"name":"Request.UserAgent"},{"name":"Request.Write"},{"name":"Request.WriteProxy"},{"name":"Response.Cookies"},{"name":"Response.Location"},{"name":"Response.Write"},{"name":"ResponseController.EnableFullDuplex"},{"name":"ResponseController.Flush"},{"name":"ResponseController.Hijack"},{"name":"ResponseController.SetReadDeadline"},{"name":"ResponseController.SetWriteDeadline"},{"name":"Serve"},{"name":"ServeContent"},{"name":"ServeFile"},{"name":"ServeFileFS"},{"name":"ServeMux.Handle"},{"name":"ServeMux.HandleFunc"},{"name":"ServeMux.ServeHTTP"},{"name":"ServeTLS"},{"name":"Server.Close"},{"name":"Server.ListenAndServe"},{"name":"Server.ListenAndServeTLS"},{"name":"Server.Serve"},{"name":"Server.ServeTLS"},{"name":"Server.SetKeepAlivesEnabled"},{"name":"Server.Shutdown"},{"name":"SetCookie"},{"name":"Transport.CancelRequest"},{"name":"Transport.Clone"},{"name":"Transport.CloseIdleConnections"},{"name":"Transport.NewClientConn"},{"name":"Transport.RoundTrip"},{"name":"body.Close"},{"name":"body.Read"},{"name":"bodyEOFSignal.Close"},{"name":"bodyEOFSignal.Read"},{"name":"bodyLocked.Read"},{"name":"bufioFlushWriter.Write"},{"name":"cancelTimerBody.Close"},{"name":"cancelTimerBody.Read"},{"name":"checkConnErrorWriter.Write"},{"name":"chunkWriter.Write"},{"name":"connReader.Read"},{"name":"connectMethodKey.String"},{"name":"expectContinueReader.Close"},{"name":"expectContinueReader.Read"},{"name":"extraHeader.Write"},{"name":"fileHandler.ServeHTTP"},{"name":"fileTransport.RoundTrip"},{"name":"globalOptionsHandler.ServeHTTP"},{"name":"gzipReader.Close"},{"name":"gzipReader.Read"},{"name":"http1ClientConn.Close"},{"name":"http1ClientConn.RoundTrip"},{"name":"http2ClientConn.RoundTrip"},{"name":"http2Handler.ServeHTTP"},{"name":"http2ResponseWriter.Flush"},{"name":"http2ResponseWriter.FlushError"},{"name":"http2ResponseWriter.Push"},{"name":"http2RoundTripper.RoundTrip"},{"name":"http3ServerHandler.ServeHTTP"},{"name":"initALPNRequest.ServeHTTP"},{"name":"loggingConn.Close"},{"name":"loggingConn.Read"},{"name":"loggingConn.Write"},{"name":"maxBytesReader.Close"},{"name":"onceCloseListener.Close"},{"name":"persistConn.Read"},{"name":"persistConnWriter.ReadFrom"},{"name":"persistConnWriter.Write"},{"name":"populateResponse.Write"},{"name":"populateResponse.WriteHeader"},{"name":"readTrackingBody.Close"},{"name":"readTrackingBody.Read"},{"name":"readWriteCloserBody.CloseWrite"},{"name":"readWriteCloserBody.Read"},{"name":"redirectHandler.ServeHTTP"},{"name":"response.Flush"},{"name":"response.FlushError"},{"name":"response.Hijack"},{"name":"response.ReadFrom"},{"name":"response.Write"},{"name":"response.WriteHeader"},{"name":"response.WriteString"},{"name":"serverHandler.ServeHTTP"},{"name":"socksDialer.DialWithConn"},{"name":"socksUsernamePassword.Authenticate"},{"name":"stringWriter.WriteString"},{"name":"timeoutHandler.ServeHTTP"},{"name":"timeoutWriter.Write"},{"name":"timeoutWriter.WriteHeader"},{"name":"transportReadFromServerError.Error"},{"name":"unencryptedHTTP2Request.ServeHTTP"}],"defaultStatus":"unaffected"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-820: Missing Synchronization"}]}],"references":[{"url":"https://go.dev/cl/862185"},{"url":"https://go.dev/issue/82563"},{"url":"https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM"},{"url":"https://pkg.go.dev/vuln/GO-2026-6859"}],"credits":[{"lang":"en","value":"Jakub Ciolek (https://ciolek.dev)"}]}}}