Skip to content

net/http: HTTP/1 server connection desynchronization after 2xx CONNECT response #81744

Closed

Description

@neild

When an HTTP server handler sent a 2xx response to an HTTP/1 CONNECT request
and returned without hijacking the connection, the server improperly continued
to read and serve requests from the connection. Since a 2xx response to an
HTTP/1 CONNECT converts the connection into a tunnel, the server should not
treat the connection as continuing to contain HTTP.

The impact of this misbehavior is mostly limited to potential request smuggling,
where an intermediate proxy considers the data on the connection to be tunneled
and the server considers it to be HTTP.

The HTTP/1 server now always closes a connection after responding to a CONNECT
request, regardless of the response status.

Thanks to Jakub Ciolek (https://ciolek.dev) for reporting this issue.

This is CVE-2026-94439 and Go issue https://go.dev/issue/81744.


This was a PRIVATE track issue originally tracked in http://b/551900039.

Activity

  1. added this to the Go1.28 milestone on Sep 24, 2026
  2. added
    NeedsFixThe path to resolution is known, but the work has not been done.
    on Sep 29, 2026
  3. removed
    NeedsFixThe path to resolution is known, but the work has not been done.
    on Sep 30, 2026
  4. thatnealpatel commented on Sep 30, 2026

    @thatnealpatel
    Member

    @gopherbot Please open backports for this security issue.

  5. gopherbot commented on Sep 30, 2026

    @gopherbot
    Contributor

    Backport issue(s) opened: #81907 (for 1.26), #81908 (for 1.27).

    Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://go.dev/wiki/MinorReleases.

  6. added
    NeedsFixThe path to resolution is known, but the work has not been done.
    on Oct 5, 2026
  7. gopherbot commented on Oct 8, 2026

    @gopherbot
    Contributor

    Change https://go.dev/cl/847028 mentions this issue: [release-branch.go1.27] net/http: avoid server reuse of connection after CONNECT

  8. gopherbot commented on Oct 8, 2026

    @gopherbot
    Contributor

    Change https://go.dev/cl/847108 mentions this issue: [release-branch.go1.26] net/http: avoid server reuse of connection after CONNECT

  9. gopherbot commented on Oct 8, 2026

    @gopherbot
    Contributor

    Change https://go.dev/cl/847311 mentions this issue: net/http: avoid server reuse of connection after CONNECT

  10. changed the title [-]security: fix CVE-2026-94439[/-] [+]net/http: HTTP/1 server connection desynchronization after 2xx CONNECT response[/+] on Oct 8, 2026
  11. removed
    NeedsFixThe path to resolution is known, but the work has not been done.
    on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions