nghttp2's nghttpx proxy through 1.69.0 forwards an HTTP/1.1 Upgrade request that also carries a Content-Length header and body onto reusable keep-alive backend connections, re-adding the Upgrade and Connection headers while passing Content-Length verbatim. A backend that resolves the resulting ambiguous message in the attacker's favor enables HTTP request/response smuggling and cross-client response-queue poisoning.
{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.43.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2",
"binary_version": "1.43.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.43.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.43.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.43.0-1ubuntu0.4"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.59.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2",
"binary_version": "1.59.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.59.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.59.0-1ubuntu0.4"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.59.0-1ubuntu0.4"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.64.0-1.1ubuntu1.2"
},
{
"binary_name": "nghttp2",
"binary_version": "1.64.0-1.1ubuntu1.2"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.64.0-1.1ubuntu1.2"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.64.0-1.1ubuntu1.2"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.64.0-1.1ubuntu1.2"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.68.0-2ubuntu0.2"
},
{
"binary_name": "nghttp2",
"binary_version": "1.68.0-2ubuntu0.2"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.68.0-2ubuntu0.2"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.68.0-2ubuntu0.2"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.68.0-2ubuntu0.2"
}
]
}{
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.7.1-1ubuntu0.1~esm3"
},
{
"binary_name": "nghttp2",
"binary_version": "1.7.1-1ubuntu0.1~esm3"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.7.1-1ubuntu0.1~esm3"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.7.1-1ubuntu0.1~esm3"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.7.1-1ubuntu0.1~esm3"
}
]
}{
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.30.0-1ubuntu1+esm3"
},
{
"binary_name": "nghttp2",
"binary_version": "1.30.0-1ubuntu1+esm3"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.30.0-1ubuntu1+esm3"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.30.0-1ubuntu1+esm3"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.30.0-1ubuntu1+esm3"
}
]
}{
"binaries": [
{
"binary_name": "libnghttp2-14",
"binary_version": "1.40.0-1ubuntu0.3+esm1"
},
{
"binary_name": "nghttp2",
"binary_version": "1.40.0-1ubuntu0.3+esm1"
},
{
"binary_name": "nghttp2-client",
"binary_version": "1.40.0-1ubuntu0.3+esm1"
},
{
"binary_name": "nghttp2-proxy",
"binary_version": "1.40.0-1ubuntu0.3+esm1"
},
{
"binary_name": "nghttp2-server",
"binary_version": "1.40.0-1ubuntu0.3+esm1"
}
]
}