{"id":"CVE-2026-78660","revision":"1a18c479609b41ff8ec990c9b7c3c8b1","records":[{"revision":"1a18c479609b41ff8ec990c9b7c3c8b1","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-78660","aliases":[],"title":"HTTP/2 transport accepts malformed framing-related headers in net/http","description":"Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with HTTP/2 framing. However, this makes it possible for our HTTP/2 implementation to forward responses containing such headers to an HTTP/1 client when acting as a reverse proxy. If the HTTP/1 client also does not behave strictly enough, this can result in response smuggling.","state":0,"publishedAt":"2026-10-08T22:53:59.334+00:00","modifiedAt":"2026-10-09T16:23:56.092+00:00","affected":[{"ecosystem":"https://pkg.go.dev","name":"net/http","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Go standard library\",\n                    \"product\": \"net/http\",\n                    \"collectionURL\": \"https://pkg.go.dev\",\n                    \"packageName\": \"net/http\",\n                    \"versions\": [\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"1.26.9\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"programRoutines\": [\n                        {\n                            \"name\": \"http2clientConnReadLoop.handleResponse\"\n                        },\n                        {\n                            \"name\": \"Client.CloseIdleConnections\"\n                        },\n                        {\n                            \"name\": \"Client.Do\"\n                        },\n                        {\n                            \"name\": \"Client.Get\"\n                        },\n                        {\n                            \"name\": \"Client.Head\"\n                        },\n                        {\n                            \"name\": \"Client.Post\"\n                        },\n                        {\n                            \"name\": \"Client.PostForm\"\n                        },\n                        {\n                            \"name\": \"ClientConn.Close\"\n                        },\n                        {\n                            \"name\": \"ClientConn.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"Get\"\n                        },\n                        {\n                            \"name\": \"Head\"\n                        },\n                        {\n                            \"name\": \"Post\"\n                        },\n                        {\n                            \"name\": \"PostForm\"\n                        },\n                        {\n                            \"name\": \"Transport.CloseIdleConnections\"\n                        },\n                        {\n                            \"name\": \"Transport.NewClientConn\"\n                        },\n                        {\n                            \"name\": \"Transport.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"http1ClientConn.Close\"\n                        },\n                        {\n                            \"name\": \"http1ClientConn.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"http2Transport.NewClientConn\"\n                        },\n                        {\n                            \"name\": \"http2Transport.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"http2Transport.RoundTripOpt\"\n                        },\n                        {\n                            \"name\": \"http2clientConnPool.GetClientConn\"\n                        },\n                        {\n                            \"name\": \"http2noDialClientConnPool.GetClientConn\"\n                        },\n                        {\n                            \"name\": \"http2noDialH2RoundTripper.NewClientConn\"\n                        },\n                        {\n                            \"name\": \"http2noDialH2RoundTripper.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"http2unencryptedTransport.RoundTrip\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\"\n                }"},{"ecosystem":"https://pkg.go.dev","name":"net/http/internal/http2","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Go standard library\",\n                    \"product\": \"net/http/internal/http2\",\n                    \"collectionURL\": \"https://pkg.go.dev\",\n                    \"packageName\": \"net/http/internal/http2\",\n                    \"versions\": [\n                        {\n                            \"version\": \"1.27.0-0\",\n                            \"lessThan\": \"1.27.2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"programRoutines\": [\n                        {\n                            \"name\": \"clientConnReadLoop.handleResponse\"\n                        },\n                        {\n                            \"name\": \"Transport.AddConn\"\n                        },\n                        {\n                            \"name\": \"Transport.NewClientConn\"\n                        },\n                        {\n                            \"name\": \"Transport.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"Transport.RoundTripOpt\"\n                        },\n                        {\n                            \"name\": \"clientConnPool.GetClientConn\"\n                        },\n                        {\n                            \"name\": \"noDialClientConnPool.GetClientConn\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\"\n                }"},{"ecosystem":"https://pkg.go.dev","name":"golang.org/x/net/http2","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"golang.org/x/net\",\n                    \"product\": \"golang.org/x/net/http2\",\n                    \"collectionURL\": \"https://pkg.go.dev\",\n                    \"packageName\": \"golang.org/x/net/http2\",\n                    \"versions\": [\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"0.60.0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"programRoutines\": [\n                        {\n                            \"name\": \"clientConnReadLoop.handleResponse\"\n                        },\n                        {\n                            \"name\": \"Transport.NewClientConn\"\n                        },\n                        {\n                            \"name\": \"Transport.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"Transport.RoundTripOpt\"\n                        },\n                        {\n                            \"name\": \"clientConnPool.GetClientConn\"\n                        },\n                        {\n                            \"name\": \"noDialClientConnPool.GetClientConn\"\n                        },\n                        {\n                            \"name\": \"noDialH2RoundTripper.NewClientConn\"\n                        },\n                        {\n                            \"name\": \"noDialH2RoundTripper.RoundTrip\"\n                        },\n                        {\n                            \"name\": \"unencryptedTransport.RoundTrip\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\"\n                }"}],"metrics":[],"references":["https://go.dev/cl/835145","https://go.dev/cl/836385","https://go.dev/issue/81115","https://groups.google.com/g/golang-announce/c/U2fTuyDJznI","https://pkg.go.dev/vuln/GO-2026-6610"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-78660","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-78660","identifiers":["CVE-2026-78660"]},"retained":false,"historicalAffected":[]}],"coverage":[]}