Hi,

HAProxy 2.7.3 was released on 2023/02/14. It added 76 new commits
after version 2.7.2.

The main reason for this release today is the availability of a fix for the
vulnerability explained in the other thread (CVE-2023-25725).

In addition, this version addresses the following issues:
  - a risk of crash in QUIC when "option nolinger" is present, when
    dealing with 1-RTT packets, or when no space is available to send
    trailers or H3 SETTINGS frames.

  - a regression from a previous fix that caused some server-side
    connection not to expire if some unsent data are blocked in the
    request channel.

  - a 13-years old issue with the expiration of old entries in stick-
    tables that slows down eviction at every timer period rollover
    (49.7 days), making the table size and memory usage grow for a
    while until all of them were either refreshed or expired. I'm
    still puzzled that 3 users apparently noticed it at the same time
    around last rollover on Jan 30th.

  - hot-adding a server via the CLI could result in it not taking
    traffic if its "maxconn" value was set and not the "minconn" one,
    causing 503 to be returned.

  - various minor QUIC issues were addressed by resyncing the code with
    2.8-dev.

  - file-backed rings used by traces were not properly unmapped before
    being closed, sometimes resulting in losing the latest updates.

  - a few memory leaks on deinit were addressed (these are only noticeable
    in Valgrind or ASAN).

  - a bug in the SSL cache eviction that affected WolfSSL was fixed, but
    it's unclear if it could affect other libs (openssl was apparently not
    due to fixed-size records)

  - a warning will be emitted when a crt-list line is malformed.

  - the stats will now report request and session counters per HTTP
    version in the tooltip that appears in "sessions/total" column.

  - the CLI's "show quic" command was backported, it corresponds to
    "netstat" or "ss" in TCP except that here it is for QUIC, so it
    allows to inspect the state of currently established QUIC connections.

  - a new global setting "tune.quic.max-frame-loss" was added to limit
    the number of retransmits over a QUIC connection (10 by default), so
    that dead connections can always expire.

  - minor doc fixes

The changes are intentionally limited so that all users of 2.7.2 and older
can update without taking risks.

Please find the usual URLs below :
   Site index       : https://www.haproxy.org/
   Documentation    : https://docs.haproxy.org/
   Wiki             : https://github.com/haproxy/wiki/wiki
   Discourse        : https://discourse.haproxy.org/
   Slack channel    : https://slack.haproxy.org/
   Issue tracker    : https://github.com/haproxy/haproxy/issues
   Sources          : 
https://www.haproxy.org/download/20230214-cve-2023-25725/src/
   Git repository   : 
https://git.haproxy.org/git/haproxy-20230214-cve-2023-25725.git/
   Git Web browsing : 
https://git.haproxy.org/?p=haproxy-20230214-cve-2023-25725.git
   Changelog        : 
https://www.haproxy.org/download/20230214-cve-2023-25725/src/CHANGELOG
   Dataplane API    : 
https://github.com/haproxytech/dataplaneapi/releases/latest
   Pending bugs     : https://www.haproxy.org/l/pending-bugs
   Reviewed bugs    : https://www.haproxy.org/l/reviewed-bugs
   Code reports     : https://www.haproxy.org/l/code-reports
   Latest builds    : https://www.haproxy.org/l/dev-packages

Willy
---
Complete changelog :
Aleksey Ponomaryov (1):
      BUG/MEDIUM: stick-table: do not leave entries in end of window during 
purge

Amaury Denoyelle (28):
      MEDIUM: quic-sock: fix udp source address for send on listener socket
      MINOR: mux-quic/h3: send SETTINGS as soon as transport is ready
      BUG/MINOR: h3: fix GOAWAY emission
      BUG/MEDIUM: mux-quic: fix crash on H3 SETTINGS emission
      BUG/MEDIUM: h3: do not crash if no buf space for trailers
      OPTIM: h3: skip buf realign if no trailer to encode
      MINOR: mux-quic/h3: define stream close callback
      BUG/MEDIUM: h3: handle STOP_SENDING on control stream
      BUG/MINOR: h3: reject RESET_STREAM received for control stream
      MINOR: h3: add missing traces on closure
      BUG/MINOR: h3: fix crash due to h3 traces
      MINOR: quic: remove fin from quic_stream frame type
      MINOR: quic: ensure offset is properly set for STREAM frames
      MINOR: quic: define new functions for frame alloc
      MINOR: quic: refactor frame deallocation
      MEDIUM: quic: implement a retransmit limit per frame
      MINOR: quic: add config for retransmit limit
      BUG/MEDIUM: quic: do not split STREAM frames if no space
      BUG/MINOR: h3: fix crash due to h3 traces
      MINOR: quic: implement a basic "show quic" CLI handler
      MINOR: quic: display CIDs and state in "show quic"
      MINOR: quic: display socket info on "show quic"
      MINOR: quic: display infos about various encryption level on "show quic"
      MINOR: quic: display Tx stream info on "show quic"
      MINOR: quic: filter closing conn on "show quic"
      BUG/MINOR: quic: fix filtering of closing connections on "show quic"
      BUG/MINOR: quic: fix type bug on "show quic" for 32-bits arch
      BUG/MINOR: mworker: fix uptime for master process

Aurelien DARRAGON (12):
      DEV: hpack: fix `trash` build regression
      BUG/MINOR: fcgi-app: prevent 'use-fcgi-app' in default section
      BUG/MINOR: stats: use proper buffer size for http dump
      BUG/MINOR: stats: fix source buffer size for http dump
      BUG/MEDIUM: stats: fix resolvers dump
      BUG/MINOR: stats: fix ctx->field update in stats_dump_proxy_to_buffer()
      BUG/MINOR: stats: fix show stats field ctx for servers
      BUG/MINOR: stats: fix STAT_STARTED behavior with full htx
      DOC: config: fix option spop-check proxy compatibility
      DOC: config: 'http-send-name-header' option may be used in default section
      MINOR: cfgparse/server: move (min/max)conn postparsing logic into 
dedicated function
      BUG/MINOR: server/add: ensure minconn/maxconn consistency when adding 
server

Christopher Faulet (1):
      BUG/MEDIUM: stconn: Schedule a shutw on shutr if data must be sent first

Frédéric Lécaille (14):
      BUG/MINOR: quic: Do not request h3 clients to close its unidirection 
streams
      MINOR: stats: add by HTTP version cumulated number of sessions and 
requests
      BUG/MINOR: stats: Prevent HTTP "other sessions" counter underflows
      BUG/MINOR: quic: Possible stream truncations under heavy loss
      BUG/MINOR: quic: Too big PTO during handshakes
      MINOR: quic: Add a trace about variable states in qc_prep_fast_retrans()
      BUG/MINOR: quic: Do not ignore coalesced packets in qc_prep_fast_retrans()
      MINOR: quic: When probing Handshake packet number space, also probe the 
Initial one
      BUG/MAJOR: quic: Possible crash when processing 1-RTT during 0-RTT session
      MEDIUM: quic: Remove qc_conn_finalize() from the ClientHello TLS callbacks
      BUG/MINOR: quic: Unchecked source connection ID
      MINOR: quic: Update version_information transport parameter to draft-14
      BUG/MEDIUM: quic: Buffer overflow when looking through QUIC CLI keyword 
list
      BUG/MINOR: quic: Wrong datagram dispatch because of qc_check_dcid()

Olivier Houchard (1):
      MINOR: connection: add a BUG_ON() to detect destroying connection in idle 
list

Remi Tricot-Le Breton (1):
      BUG/MINOR: jwt: Wrong return value checked

William Lallemand (2):
      BUG/MEDIUM: ssl: wrong eviction from the session cache tree
      BUG/MINOR: ssl/crt-list: warn when a line is malformated

Willy Tarreau (16):
      BUG/MINOR: sink: make sure to always properly unmap a file-backed ring
      DEV: haring: add a new option "-r" to automatically repair broken files
      BUG/MEDIUM: hpack: fix incorrect huffman decoding of some control chars
      BUG/MINOR: log: release global log servers on exit
      BUG/MINOR: ring: release the backing store name on exit
      BUG/MINOR: sink: free the forwarding task on exit
      MINOR: trace: add a TRACE_ENABLED() macro to determine if a trace is 
active
      MINOR: trace: add a trace_no_cb() dummy callback for when to use no 
callback
      MINOR: trace: add the long awaited TRACE_PRINTF()
      CLEANUP: quic: no need for atomics on packet refcnt
      BUG/MINOR: clock: do not mix wall-clock and monotonic time in uptime 
calculation
      BUG/MEDIUM: cache: use the correct time reference when comparing dates
      BUG/MEDIUM: quic: fix crash when "option nolinger" is set in the frontend
      BUG/MINOR: clock/stats: also use start_time not start_date in HTML info
      DOC: proxy-protocol: fix wrong byte in provided example
      BUG/CRITICAL: http: properly reject empty http header field names

---

Reply via email to