GO-2026-6605 BIT-golang-2026-56866 CVE-2026-56866
HTTP/1 client connection desynchronization after CONNECT rejection in net/http
- Severity
- 7.5 / 10
- High · CVSS 3.1
- Exploit chance (EPSS)
- 0.47%
- Chance of exploitation in the next 30 days. Higher than 40.98% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
- Fix
1.27.2- Upgrade stdlib to this version or later
Description
When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without framing after the request headers. If the server rejects the CONNECT request with a non-2xx keep-alive response, Transport returns the connection to the idle pool. Because CONNECT requests do not have a request body, the server may interpret the trailing body bytes as a subsequent pipelined HTTP/1.1 request on the connection, leaving the pooled connection desynchronized and causing the next caller that reuses it to read the response to the injected request. In reverse proxies (including httputil.ReverseProxy) that forward CONNECT requests through a shared Transport, this can lead to cross-user response poisoning.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| stdlib | < 1.26.9>= 1.27.0-0, < 1.27.2 |
1.26.91.27.2 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
stdlib Go → 1.27.2
- go
go get stdlib@v1.27.2 && go mod tidy
Severity breakdown
CVSS 3.1 7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Weakness
CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
How to prevent it
- Implementation: Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
- Implementation: Use only SSL communication.
- Implementation: Terminate the client session after each request.
- System Configuration: Turn all pages to non-cacheable.
References
Fixes and patches
Issue reports
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-4374-p667-p6c8 HTTP/2 rapid reset can cause excessive work in net/http | High Known exploited | Also affects stdlib |
| CVE-2020-0601 Certificate validation bypass on Windows in crypto/x509 | High Known exploited | Also affects stdlib |
| RUSTSEC-2026-0382 Distrust compromised intermediate certificates in crypto/x509 | Medium | Also affects stdlib |
| GO-2026-6613 HTTP/1 server connection desynchronization after 2xx CONNECT response in net/http | High | Also affects stdlib |
| GO-2026-6609 Lack of limit on size of parsed Range headers in net/http | High | Also affects stdlib |
| GO-2026-6608 Memory limit bypass when parsing MIME headers in net/textproto, mime/multipart | High | Also affects stdlib |
| GO-2026-6607 Reject malformed ECH outer extension references in crypto/tls | High | Also affects stdlib |
| GO-2026-6604 Root.Mkdir(All) can follow junctions out of the root on Windows in os | Critical | Also affects stdlib |
Credits: Xclow3n (Rajat Raghav)
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor