Skip to content

Releases: AsyncHttpClient/async-http-client

AHC v3.0.13 Release

Choose a tag to compare

Security

  • GHSA-rqf5-2wxv-rjf4 - Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
  • GHSA-jmqq-x5g9-9p2w - Replay to a different host sends the original host's request and credentials to the new host
  • GHSA-vvp4-63h8-v5pm - Connection pool key omits the authenticated principal, so an NTLM or Negotiate connection is reused across identities
  • GHSA-f9m8-cv68-674w - Cookie Domain attribute is not checked against the public suffix list, so a cookie can be set for co.uk
  • GHSA-qhv6-3pmh-95q4 - Digest mutual authentication is switched off by a peer offering qop=auth-int

Behaviour changes

  • A Digest challenge carrying no nonce now selects Digest rather than Basic. Such an exchange previously appeared to work because the client answered in Basic, and it will now fail. It was sending the password in the clear.
  • A server offering qop="auth-int" and nothing else now falls back to the qop-less digest of RFC 2069, which has weaker replay protection. The client logs a warning when this happens.
  • Realm.Builder.matchParam keeps a backslash that precedes any character other than a quote or another backslash. This repairs a 3.0.12 regression that corrupted DOMAIN\Users to DOMAINUsers and broke Digest against those realms.
  • NTLM and Negotiate connections are pooled per principal, so an application authenticating as several identities against one host holds more connections than before.
  • A cookie whose Domain names a public suffix is refused. A host whose own name is a public suffix, such as the short names Docker Compose and Kubernetes hand out, can still set a cookie for itself.

Known issues

  • Over HTTP/2, an intercepted 401 or a redirect completes the caller's future exceptionally even though the exchange succeeds on the wire. Use HTTP/1.1 where authentication or redirects are involved.

AHC v3.0.12 Release

Choose a tag to compare

What's Changed

Read more

AHC v2.16.1 Release

Choose a tag to compare

Security

  • GHSA-3wp9-xfwm-rjjf - WebSocket proxy credentials sent to the origin server over a CONNECT tunnel
  • GHSA-7grg-jcf7-rpmx - Unbounded HTTP/1.1 response decompression enables a decompression-bomb denial of service
  • GHSA-cf59-3jcr-vfhw - Resumable download index store is created world-readable and follows a planted symlink
  • GHSA-f8m2-889x-vw4x - Client-wide realm credentials re-sent to a cross-origin redirect target
  • GHSA-f9m8-cv68-674w - Cookie Domain attribute is not checked against the public suffix list, so a cookie can be set for co.uk
  • GHSA-jmqq-x5g9-9p2w - Replay to a different host sends the original host request and credentials to the new host
  • GHSA-mfj3-87qq-382v - Digest authentication cnonce generated with a non-cryptographic random source
  • GHSA-qpfv-56x8-xgx4 - URL userinfo credentials sent to the HTTP proxy in the request line
  • GHSA-rqf5-2wxv-rjf4 - Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
  • GHSA-rwhr-j9rv-85f8 - WebSocket handshake continues after a failed Sec-WebSocket-Accept check
  • GHSA-v9f2-7rw2-gr2x - Origin credentials sent in cleartext to a proxy that rejects the CONNECT
  • GHSA-vvp4-63h8-v5pm - Connection pool key omits the authenticated principal, so an NTLM or Negotiate connection is reused across identities
  • GHSA-x5w6-vm3f-pp6f - SOCKS proxy credentials sent to the origin server over plaintext HTTP
  • GHSA-xr57-gcx8-52hf - Origin credentials sent to the proxy on the plaintext CONNECT request

Behaviour changes

  • A Digest challenge carrying no nonce now selects Digest rather than Basic. Such an exchange previously appeared to work because the client answered in Basic, and it will now fail. It was sending the password in the clear.
  • NTLM and Negotiate connections are pooled per principal, so an application authenticating as several identities against one host holds more connections than before.
  • A cookie whose Domain names a public suffix is refused. A host whose own name is a public suffix, such as the short names Docker Compose and Kubernetes hand out, can still set a cookie for itself.
  • A ResponseFilter that replays onto a different host no longer carries the first origin's realm to the new one. A client-wide realm no longer follows a cross-host replay.

AHC v2.16.0 Release

Choose a tag to compare

@hyperxpro hyperxpro released this 15 Jun 17:50
8e4069c

What's Changed

  • Backport: reject set-cookie domain that doesn't match the request host by @hyperxpro in #2199

Security Advisory

GHSA-m452-q8c9-rg2f

Full Changelog: async-http-client-project-2.15.0...async-http-client-project-2.16.0

AHC v3.0.11 Release

Choose a tag to compare

@hyperxpro hyperxpro released this 14 Jun 22:25
a374830

What's Changed

  • Bump org.apache.tomcat.embed:tomcat-embed-core from 10.1.54 to 10.1.55 in /client by @dependabot[bot] in #2179
  • Bump the dependencies group across 1 directory with 15 updates by @dependabot[bot] in #2180
  • Streamline HTTP/2 request header copy by @hyperxpro in #2181
  • Streamline DefaultChannelPool checkout and close paths by @hyperxpro in #2183
  • Bump io.netty:netty-transport-native-epoll from 4.2.13.Final to 4.2.15.Final by @dependabot[bot] in #2188
  • Bump io.netty:netty-codec-http2 from 4.2.13.Final to 4.2.15.Final by @dependabot[bot] in #2187
  • Bump io.netty:netty-transport-native-kqueue from 4.2.13.Final to 4.2.15.Final by @dependabot[bot] in #2186
  • Bump io.netty:netty-resolver-dns from 4.2.13.Final to 4.2.15.Final by @dependabot[bot] in #2185
  • Bump io.netty:netty-handler from 4.2.13.Final to 4.2.15.Final by @dependabot[bot] in #2184
  • Replace jakarta.activation with an internal MIME-type parser by @hyperxpro in #2193
  • Bump the dependencies group across 1 directory with 4 updates by @dependabot[bot] in #2194
  • Replace umbrella netty-codec with netty-codec-base and netty-codec-compression by @hyperxpro in #2195
  • Fix HTTP/2 silent request timeouts under connection disruptions by @hyperxpro in #2162
  • reject set-cookie domain that doesn't match the request host by @jmestwa-coder in #2196
  • Stabilize HTTP/2: fix resource leaks and RFC conformance by @hyperxpro in #2197

Security Advisory

GHSA-m452-q8c9-rg2f

New Contributors

Full Changelog: async-http-client-project-3.0.10...async-http-client-project-3.0.11

AHC v3.0.10 Release

Choose a tag to compare

What's Changed

  • Guard against null TimeoutsHolder in NettyConnectListener.onSuccess by @hyperxpro in #2176

Security Advisory

GHSA-fmxf-pm6p-7xgm

Full Changelog: async-http-client-project-3.0.9...async-http-client-project-3.0.10

AHC v2.15.0 Release

Choose a tag to compare

AHC v2.14.5 Release

Choose a tag to compare

AHC v3.0.9 Release

Choose a tag to compare

What's Changed

  • Enable maven snapshots by @hyperxpro in #2161
  • Avoid allocations in ChannelPoolPartioning by @doom369 in #2158
  • Bump org.apache.tomcat.embed:tomcat-embed-core from 10.1.52 to 10.1.54 in /client by @dependabot[bot] in #2164
  • Add pluggable DnsNameResolver by @doom369 in #2163
  • Strip credentials on cross-domain redirects and HTTPS-to-HTTP downgrades 6b2fbb7

Security

Full Changelog: async-http-client-project-3.0.8...async-http-client-project-3.0.9

AHC v3.0.8 Release

Choose a tag to compare

@hyperxpro hyperxpro released this 28 Mar 00:53
242ddea

What's Changed

  • netty leak detector 0.2.2 by @sullis in #2143
  • Bump org.apache.tomcat.embed:tomcat-embed-core from 10.1.47 to 10.1.49 in /client by @dependabot[bot] in #2142
  • Bump org.apache.tomcat.embed:tomcat-embed-core from 10.1.49 to 10.1.50 in /client by @dependabot[bot] in #2145
  • Add Support for Multiplexing HTTP/2 by @hyperxpro in #2144
  • Modernize README and fix outdated project metadata by @hyperxpro in #2146
  • Drop shaded Apache Commons FileUpload and move to test dependency by @hyperxpro in #2147
  • Implement full RFC 7616 HTTP Digest Authentication compliance by @hyperxpro in #2148
  • Switch to Revapi and Matrix JDK builds for all current JDK LTS by @hyperxpro in #2149
  • Bump the actions group with 4 updates by @dependabot[bot] in #2150
  • Bump the dependencies group with 50 updates and add profile for different JDKs by @dependabot[bot] in #2151
  • Bump org.apache.tomcat.embed:tomcat-embed-core from 10.1.50 to 10.1.52 in /client by @dependabot[bot] in #2153
  • RFC 7804 - SCRAM Authentication Implementation with SHA-256 by @hyperxpro in #2154
  • Release v3.0.8 by @hyperxpro in #2155

Full Changelog: async-http-client-project-3.0.7...async-http-client-project-3.0.8