February 2023 – CVE-2023-25725: Header Parser Fixed

HAProxy Technologies has announced that HAProxy 2.0 or newer, HAProxy Enterprise 2.0 or newer, and HAProxy ALOHA 12.5 or newer are affected by CVE-2023-25725. If you are using an affected product you should upgrade to the latest version immediately or apply the configuration detailed below.

This vulnerability affects the header parser and permits header manipulations that might be unauthorized or dangerous.

Examples:

  • a transfer-encoding header may be hidden after the presence of a content-length header is confirmed and sent to another proxy

  • a transfer-encoding header or a content-length header may be hidden after the internal parser has confirmed its presence; in this scenario, the parser will consider the missing header to still be present.

Affected Versions and Remediation

HAProxy Technologies released new versions of HAProxy, HAProxy Enterprise, HAProxy ALOHA, and HAProxy Kubernetes Ingress Controller on Tuesday, 14 February 2023. These releases patch the vulnerability described in CVE-2023-25725.

Users of the affected products should upgrade to the fixed version as soon as possible.

Users of container images: please note that we are currently building fixed versions of the container images. We will update this article when they are available.

Affected Version

Fixed Version

HAProxy 2.0

HAProxy 2.0.31

HAProxy 2.2

HAProxy 2.2.29

HAProxy 2.4

HAProxy 2.4.22

HAProxy 2.5

HAProxy 2.5.12

HAProxy 2.6

HAProxy 2.6.9

HAProxy 2.7

HAProxy 2.7.3

HAProxy Enterprise 2.0r1

2.0r1-1.0.0-248.1534

HAProxy Enterprise 2.2r1

2.2r1-1.0.0-254.929

HAProxy Enterprise 2.4r1

2.4r1-1.0.0-285.1010

HAProxy Enterprise 2.5r1

2.5r1-1.0.0-285.653

HAProxy Enterprise 2.6r1

2.6r1-1.0.0-288.770

HAProxy ALOHA 12.5

HAProxy ALOHA 12.5.18

HAProxy ALOHA 13.5

HAProxy ALOHA 13.5.19

HAProxy ALOHA 14.0

HAProxy ALOHA 14.0.11

HAProxy ALOHA 14.5

HAProxy ALOHA 14.5.6

HAProxy Kubernetes Ingress Controller 1.7

HAProxy Kubernetes Ingress Controller 1.7.12

HAProxy Kubernetes Ingress Controller 1.8

HAProxy Kubernetes Ingress Controller 1.8.11

HAProxy Kubernetes Ingress Controller 1.9

HAProxy Kubernetes Ingress Controller 1.9.3

HAProxy Enterprise Kubernetes Ingress Controller 1.7

HAProxy Enterprise Kubernetes Ingress Controller 1.7.12

HAProxy Enterprise Kubernetes Ingress Controller 1.8

HAProxy Enterprise Kubernetes Ingress Controller 1.8.11

Workaround

If you are not able to update right away, you can apply the following rules to mitigate the issues. Add this to your exposed frontend and then restart your HAProxy instance.

frontend myfrontend
http-request deny if { fc_http_major 1 } !{ req.body_size 0 } !{ req.hdr(content-length) -m found } !{ req.hdr(transfer-encoding) -m found } !{ method CONNECT }

Support

If you are an HAProxy Enterprise or HAProxy ALOHA customer and have questions about upgrading to the latest version or applying the configuration workaround detailed above, please get in touch with the HAProxy support team.

Subscribe to our blog. Get the latest release updates, tutorials, and deep-dives from HAProxy experts.