Essentials

Source Repositories

Documentation

Get Involved

Subprojects

Related Projects

Miscellaneous

Apache HTTP Server 2.4 vulnerabilities

This page lists all security vulnerabilities fixed in released versions of Apache HTTP Server 2.4. Each vulnerability is given a security impact rating by the Apache security team - please note that this rating may well vary from platform to platform. We also list the versions the flaw is known to affect, and where a flaw has not been verified list the version with a question mark.

Please note that if a vulnerability is shown below as being fixed in a "-dev" release then this means that a fix has been applied to the development source tree and will be part of an upcoming full release.

Please send comments or corrections for these vulnerabilities to the Security Team.


The initial GA release, Apache httpd 2.4.1, includes fixes for all vulnerabilities which have been resolved in Apache httpd 2.2.22 and all older releases. Consult the Apache httpd 2.2 vulnerabilities list for more information.


Fixed in Apache HTTP Server 2.4.51

critical: Path Traversal and Remote Code Execution in Apache HTTP Server 2.4.49 and 2.4.50 (incomplete fix of CVE-2021-41773) (CVE-2021-42013)

It was found that the fix for CVE-2021-41773 in Apache HTTP Server 2.4.50 was insufficient. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives.

If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution.

This issue only affects Apache 2.4.49 and Apache 2.4.50 and not earlier versions.

Acknowledgements:

  • Reported by Juan Escobar from Dreamlab Technologies
  • Reported by Fernando Muñoz from NULL Life CTF Team
  • Reported by Shungo Kumasaka
  • Reported by Nattapon Jongcharoen
Reported to security team2021-10-06
fixed by r1893977, r1893980, r1893982 in 2.4.x2021-10-07
Update 2.4.51 released2021-10-07
Affects2.4.50, 2.4.49

Fixed in Apache HTTP Server 2.4.50

moderate: null pointer dereference in h2 fuzzing (CVE-2021-41524)

While fuzzing the 2.4.49 httpd, a new null pointer dereference was detected during HTTP/2 request processing,

allowing an external source to DoS the server. This requires a specially crafted request.

The vulnerability was recently introduced in version 2.4.49. No exploit is known to the project.

Acknowledgements: Apache httpd team would like to thank LI ZHI XIN from NSFocus Security Team for reporting this issue.

Reported to security team2021-09-17
fixed by r1893655 in 2.4.x2021-09-26
Update 2.4.50 released2021-10-04
Affects2.4.49

critical: Path traversal and file disclosure vulnerability in Apache HTTP Server 2.4.49 (CVE-2021-41773)

A flaw was found in a change made to path normalization in Apache HTTP Server 2.4.49. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives.

If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution.

This issue is known to be exploited in the wild.

This issue only affects Apache 2.4.49 and not earlier versions.

Acknowledgements: This issue was reported by Ash Daulton along with the cPanel Security Team

Reported to security team2021-09-29
fixed by r1893775 in 2.4.x2021-10-01
Update 2.4.50 released2021-10-04
Affects2.4.49

Fixed in Apache HTTP Server 2.4.49

moderate: Request splitting via HTTP/2 method injection and mod_proxy (CVE-2021-33193)

A crafted method sent through HTTP/2 will bypass validation and be forwarded by mod_proxy, which can lead to request splitting or cache poisoning.

This issue affects Apache HTTP Server 2.4.17 to 2.4.48.

Acknowledgements: Reported by James Kettle of PortSwigger

Reported to security team2021-05-11
Issue public2021-08-06
Update 2.4.49 released2021-09-16
Affects<=2.4.48, !<2.4.17

moderate: NULL pointer dereference in httpd core (CVE-2021-34798)

Malformed requests may cause the server to dereference a NULL pointer.

This issue affects Apache HTTP Server 2.4.48 and earlier.

Acknowledgements: The issue was discovered by the Apache HTTP security team

Update 2.4.49 released2021-09-16
Affects<=2.4.48

moderate: mod_proxy_uwsgi out of bound read (CVE-2021-36160)

A carefully crafted request uri-path can cause mod_proxy_uwsgi to read above the allocated memory and crash (DoS).

This issue affects Apache HTTP Server versions 2.4.30 to 2.4.48 (inclusive).

Acknowledgements: LI ZHI XIN from NSFocus Security Team

Reported to security team2021-04-26
Update 2.4.49 release2021-09-16
Affects<=2.4.48, !<2.4.30

low: ap_escape_quotes buffer overflow (CVE-2021-39275)

ap_escape_quotes() may write beyond the end of a buffer when given malicious input.

No included modules pass untrusted data to these functions, but third-party / external modules may.

This issue affects Apache HTTP Server 2.4.48 and earlier.

Acknowledgements: ClusterFuzz

Update 2.4.49 released2021-09-16
Affects<=2.4.48

high: mod_proxy SSRF (CVE-2021-40438)

A crafted request uri-path can cause mod_proxy to forward the request to an origin server choosen by the remote user.

This issue affects Apache HTTP Server 2.4.48 and earlier.

Acknowledgements: The issue was discovered by the Apache HTTP security team while analysing CVE-2021-36160

Update 2.4.49 released2021-09-16
Affects<=2.4.48

Fixed in Apache HTTP Server 2.4.48

moderate: mod_proxy_wstunnel tunneling of non Upgraded connections (CVE-2019-17567)

Apache HTTP Server versions 2.4.6 to 2.4.46 mod_proxy_wstunnel configured on an URL that is not necessarily Upgraded by the origin server was tunneling the whole connection regardless, thus allowing for subsequent requests on the same connection to pass through with no HTTP validation, authentication or authorization possibly configured.

Acknowledgements: Reported by Mikhail Egorov (<0ang3el gmail.com>)

Reported to security team2019-10-05
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6

moderate: Improper Handling of Insufficient Privileges (CVE-2020-13938)

Apache HTTP Server versions 2.4.0 to 2.4.46 Unprivileged local users can stop httpd on Windows

Acknowledgements: Discovered by Ivan Zhakov

Reported to security team2021-01-26
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

low: mod_proxy_http NULL pointer dereference (CVE-2020-13950)

Apache HTTP Server versions 2.4.41 to 2.4.46 mod_proxy_http can be made to crash (NULL pointer dereference) with specially crafted requests using both Content-Length and Transfer-Encoding headers, leading to a Denial of Service

Acknowledgements: Reported by Marc Stern (<marc.stern approach.be>)

Reported to security team2020-09-11
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41

low: mod_auth_digest possible stack overflow by one nul byte (CVE-2020-35452)

Apache HTTP Server versions 2.4.0 to 2.4.46 A specially crafted Digest nonce can cause a stack overflow in mod_auth_digest. There is no report of this overflow being exploitable, nor the Apache HTTP Server team could create one, though some particular compiler and/or compilation option might make it possible, with limited consequences anyway due to the size (a single byte) and the value (zero byte) of the overflow

Acknowledgements: This issue was discovered and reported by GHSL team member @antonio-morales (Antonio Morales)

Reported to security team2020-11-11
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

low: mod_session NULL pointer dereference (CVE-2021-26690)

Apache HTTP Server versions 2.4.0 to 2.4.46 A specially crafted Cookie header handled by mod_session can cause a NULL pointer dereference and crash, leading to a possible Denial Of Service

Acknowledgements: This issue was discovered and reported by GHSL team member @antonio-morales (Antonio Morales)

Reported to security team2021-02-08
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

low: mod_session response handling heap overflow (CVE-2021-26691)

Apache HTTP Server versions 2.4.0 to 2.4.46 A specially crafted SessionHeader sent by an origin server could cause a heap overflow

Acknowledgements: Discovered internally Christophe Jaillet

Reported to security team2021-03-01
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

moderate: Unexpected URL matching with 'MergeSlashes OFF' (CVE-2021-30641)

Apache HTTP Server versions 2.4.39 to 2.4.46 Unexpected matching behavior with 'MergeSlashes OFF'

Acknowledgements: Discovered by Christoph Anton Mitterer

Reported to security team2021-04-14
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.46, 2.4.43, 2.4.41, 2.4.39

important: NULL pointer dereference on specially crafted HTTP/2 request (CVE-2021-31618)

Apache HTTP Server protocol handler for the HTTP/2 protocol checks received request headers against the size limitations as configured for the server and used for the HTTP/1 protocol as well. On violation of these restrictions and HTTP response is sent to the client with a status code indicating why the request was rejected.

This rejection response was not fully initialised in the HTTP/2 protocol handler if the offending header was the very first one received or appeared in a a footer. This led to a NULL pointer dereference on initialised memory, crashing reliably the child process. Since such a triggering HTTP/2 request is easy to craft and submit, this can be exploited to DoS the server.

This issue affected mod_http2 1.15.17 and Apache HTTP Server version 2.4.47 only. Apache HTTP Server 2.4.47 was never released.

Acknowledgements: Apache HTTP server would like to thank LI ZHI XIN from NSFoucs for reporting this.

Reported to security team2021-04-22
Issue public2021-06-01
Update 2.4.48 released2021-06-01
Affects2.4.47

Fixed in Apache HTTP Server 2.4.44

important: Push Diary Crash on Specifically Crafted HTTP/2 Header (CVE-2020-9490)

In Apache HTTP Server versions 2.4.20 to 2.4.43, a specially crafted value for the 'Cache-Digest' header in a HTTP/2 request would result in a crash when the server actually tries to HTTP/2 PUSH a resource afterwards. Configuring the HTTP/2 feature via "H2Push off" will mitigate this vulnerability for unpatched servers.

Acknowledgements: Felix Wilhelm of Google Project Zero

Reported to security team2020-04-24
Issue public2020-08-07
Update 2.4.44 released2020-08-07
Affects2.4.43, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20

moderate: mod_proxy_uwsgi buffer overflow (CVE-2020-11984)

In Apache HTTP Server versions 2.4.32 to 2.4.43, mod_proxy_uwsgi has a information disclosure and possible RCE

Acknowledgements: Discovered by Felix Wilhelm of Google Project Zero

Reported to security team2020-07-22
Issue public2020-08-07
Update 2.4.44 released2020-08-07
Affects2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33

moderate: Push Diary Crash on Specifically Crafted HTTP/2 Header (CVE-2020-11993)

In Apache HTTP Server versions 2.4.20 to 2.4.43, when trace/debug was enabled for the HTTP/2 module and on certain traffic edge patterns, logging statements were made on the wrong connection, causing concurrent use of memory pools.

Configuring the LogLevel of mod_http2 above "info" will mitigate this vulnerability for unpatched servers.

Acknowledgements: Felix Wilhelm of Google Project Zero

Reported to security team2020-06-16
Issue public2020-08-07
Update 2.4.44 released2020-08-07
Affects2.4.43, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20

Fixed in Apache HTTP Server 2.4.42

low: mod_rewrite CWE-601 open redirect (CVE-2020-1927)

In Apache HTTP Server versions 2.4.0 to 2.4.41 some mod_rewrite configurations vulnerable to open redirect.

Acknowledgements: The issue was discovered by Fabrice Perez

Reported to security team2019-12-05
Issue public2020-04-01
Update 2.4.42 released2020-04-01
Affects2.4.41, 2.4.40, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

low: mod_proxy_ftp use of uninitialized value (CVE-2020-1934)

in Apache HTTP Server versions 2.4.0 to 2.4.41, mod_proxy_ftp use of uninitialized value with malicious FTP backend.

Acknowledgements: The issue was discovered by Chamal De Silva

Reported to security team2020-01-03
Issue public2020-04-01
Update 2.4.42 released2020-04-01
Affects2.4.41, 2.4.40, 2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

Fixed in Apache HTTP Server 2.4.41

moderate: mod_http2, DoS attack by exhausting h2 workers. (CVE-2019-9517)

A malicious client could perform a DoS attack by flooding a connection with requests and basically never reading responses on the TCP connection. Depending on h2 worker dimensioning, it was possible to block those with relatively few connections.

Acknowledgements: The issue was discovered by Jonathan Looney of Netflix.

Reported to security team2019-04-10
Issue public2019-08-14
Update 2.4.41 released2019-08-14
Affects2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.32, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20

moderate: mod_http2, memory corruption on early pushes (CVE-2019-10081)

HTTP/2 very early pushes, for example configured with "H2PushResource", could lead to an overwrite of memory in the pushing request's pool, leading to crashes. The memory copied is that of the configured push link header values, not data supplied by the client.

Acknowledgements: The issue was discovered by Craig Young of Tripwire VERT, <vuln-report@secur3.us>.

Reported to security team2019-04-10
Issue public2019-08-14
Update 2.4.41 released2019-08-14
Affects2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.32, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20

moderate: mod_http2, read-after-free in h2 connection shutdown (CVE-2019-10082)

Using fuzzed network input, the http/2 session handling could be made to read memory after being freed, during connection shutdown.

Acknowledgements: The issue was discovered by Craig Young of Tripwire VERT, <vuln-report@secur3.us>.

Reported to security team2019-04-12
Issue public2019-08-14
Update 2.4.41 released2019-08-14
Affects2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.32, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18

low: Limited cross-site scripting in mod_proxy error page (CVE-2019-10092)

A limited cross-site scripting issue was reported affecting the mod_proxy error page. An attacker could cause the link on the error page to be malfomed and instead point to a page of their choice. This would only be exploitable where a server was set up with proxying enabled but was misconfigured in such a way that the Proxy Error page was displayed. We have taken this opportunity to also remove request data from many other in-built error messages. Note however this issue did not affect them directly and their output was already escaped to prevent cross-site scripting attacks.

Acknowledgements: This issue was reported by Matei "Mal" Badanoiu

Reported to security team2019-07-09
Issue public2019-08-14
Update 2.4.41 released2019-08-14
Affects2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

moderate: CVE-2019-10097 mod_remoteip: Stack buffer overflow and NULL pointer dereference (CVE-2019-10097)

When mod_remoteip was configured to use a trusted intermediary proxy server using the "PROXY" protocol, a specially crafted PROXY header could trigger a stack buffer overflow or NULL pointer deference. This vulnerability could only be triggered by a trusted proxy and not by untrusted HTTP clients.

Acknowledgements: The issue was discovered by Daniel McCarney <cpu@letsencrypt.org> Let's Encrypt / Internet Security Research Group (ISRG)

Reported to security team2019-07-23
Issue public2019-08-14
Update 2.4.41 released2019-08-14
Affects2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33

low: mod_rewrite potential open redirect (CVE-2019-10098)

Redirects configured with mod_rewrite that were intended to be self-referential might be fooled by encoded newlines and redirect instead to an an unexpected URL within the request URL.

Acknowledgements: The issue was discovered by Yukitsugu Sasaki

Reported to security team2019-03-26
Issue public2019-08-14
Update 2.4.41 released2019-08-14
Affects2.4.39, 2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

Fixed in Apache HTTP Server 2.4.39

low: mod_http2, read-after-free on a string compare (CVE-2019-0196)

Using fuzzed network input, the http/2 request handling could be made to access freed memory in string comparision when determining the method of a request and thus process the request incorrectly.

Acknowledgements: The issue was discovered by Craig Young, <vuln-report@secur3.us>.

Reported to security team2019-01-29
Issue public2019-04-01
Update 2.4.39 released2019-04-01
Affects2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17

low: mod_http2, possible crash on late upgrade (CVE-2019-0197)

When HTTP/2 was enabled for a http: host or H2Upgrade was enabled for h2 on a https: host, an Upgrade request from http/1.1 to http/2 that was not the first request on a connection could lead to a misconfiguration and crash. A server that never enabled the h2 protocol or that only enabled it for https: and did not configure the "H2Upgrade on" is unaffected by this.

Acknowledgements: The issue was discovered by Stefan Eissing, greenbytes.de.

Reported to security team2019-01-29
Issue public2019-04-01
Update 2.4.39 released2019-04-01
Affects2.4.38, 2.4.37, 2.4.35, 2.4.34

important: Apache HTTP Server privilege escalation from modules' scripts (CVE-2019-0211)

In Apache HTTP Server 2.4 releases 2.4.17 to 2.4.38, with MPM event, worker or prefork, code executing in less-privileged child processes or threads (including scripts executed by an in-process scripting interpreter) could execute arbitrary code with the privileges of the parent process (usually root) by manipulating the scoreboard. Non-Unix systems are not affected.

Acknowledgements: The issue was discovered by Charles Fol.

Reported to security team2019-02-22
Issue public2019-04-01
Update 2.4.39 released2019-04-01
Affects2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17

important: mod_ssl access control bypass (CVE-2019-0215)

In Apache HTTP Server 2.4 releases 2.4.37 and 2.4.38, a bug in mod_ssl when using per-location client certificate verification with TLSv1.3 allowed a client supporting Post-Handshake Authentication to bypass configured access control restrictions.

Acknowledgements: The issue was discovered by Michael Kaufmann.

Reported to security team2019-01-23
Issue public2019-04-01
Update 2.4.39 released2019-04-01
Affects2.4.38, 2.4.37

important: mod_auth_digest access control bypass (CVE-2019-0217)

In Apache HTTP Server 2.4 release 2.4.38 and prior, a race condition in mod_auth_digest when running in a threaded server could allow a user with valid credentials to authenticate using another username, bypassing configured access control restrictions.

Acknowledgements: The issue was discovered by Simon Kappel.

Reported to security team2019-01-29
Issue public2019-04-01
Update 2.4.39 released2019-04-01
Affects2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

low: Apache httpd URL normalization inconsistincy (CVE-2019-0220)

When the path component of a request URL contains multiple consecutive slashes ('/'), directives such as LocationMatch and RewriteRule must account for duplicates in regular expressions while other aspects of the servers processing will implicitly collapse them.

Acknowledgements: The issue was discovered by Bernhard Lorenz <bernhard.lorenz@alphastrike.io> of Alpha Strike Labs GmbH.

Reported to security team2019-01-20
Issue public2019-04-01
Update 2.4.39 released2019-04-01
Affects2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

Fixed in Apache HTTP Server 2.4.38

low: DoS for HTTP/2 connections via slow request bodies (CVE-2018-17189)

By sending request bodies in a slow loris way to plain resources, the h2 stream for that request unnecessarily occupied a server thread cleaning up that incoming data. This affects only HTTP/2 connections. A possible mitigation is to not enable the h2 protocol.

Acknowledgements: The issue was discovered by Gal Goldshtein of F5 Networks.

Reported to security team2018-10-16
Issue public2019-01-22
Update 2.4.38 released2019-02-28
Affects2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17

low: mod_session_cookie does not respect expiry time (CVE-2018-17199)

In Apache HTTP Server 2.4 release 2.4.37 and prior, mod_session checks the session expiry time before decoding the session. This causes session expiry time to be ignored for mod_session_cookie sessions since the expiry time is loaded when the session is decoded.

Acknowledgements: The issue was discovered by Diego Angulo from ImExHS.

Reported to security team2018-10-08
Issue public2019-01-22
Update 2.4.38 released2019-02-28
Affects2.4.37, 2.4.35, 2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

important: mod_ssl 2.4.37 remote DoS when used with OpenSSL 1.1.1 (CVE-2019-0190)

A bug exists in the way mod_ssl handled client renegotiations. A remote attacker could send a carefully crafted request that would cause mod_ssl to enter a loop leading to a denial of service. This bug can be only triggered with Apache HTTP Server version 2.4.37 when using OpenSSL version 1.1.1 or later, due to an interaction in changes to handling of renegotiation attempts.

Acknowledgements: The issue was discovered through user bug reports.

Reported to security team2019-01-01
Issue public2019-01-22
Update 2.4.38 released2019-02-28
Affects2.4.37

Fixed in Apache HTTP Server 2.4.35

low: DoS for HTTP/2 connections by continuous SETTINGS (CVE-2018-11763)

By sending continous SETTINGS frames of maximum size an ongoing HTTP/2 connection could be kept busy and would never time out. This can be abused for a DoS on the server. This only affect a server that has enabled the h2 protocol.

Acknowledgements: The issue was discovered by Gal Goldshtein of F5 Networks.

Reported to security team2018-07-18
Issue public2018-09-25
Update 2.4.35 released2018-09-29
Affects2.4.34, 2.4.33, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18

Fixed in Apache HTTP Server 2.4.34

low: DoS for HTTP/2 connections by crafted requests (CVE-2018-1333)

By specially crafting HTTP/2 requests, workers would be allocated 60 seconds longer than necessary, leading to worker exhaustion and a denial of service. This issue only affects servers that have configured and enabled HTTP/2 support, which is not the default

Acknowledgements: The issue was discovered by Craig Young of Tripwire VERT.

Reported to security team2018-05-08
Issue public2018-07-18
Update 2.4.34 released2018-07-15
Affects2.4.33, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18

moderate: mod_md, DoS via Coredumps on specially crafted requests (CVE-2018-8011)

By specially crafting HTTP requests, the mod_md challenge handler would dereference a NULL pointer and cause the child process to segfault. This could be used to DoS the server.

Acknowledgements: The issue was discovered by Daniel Caminada <daniel.caminada@ergon.ch>.

Reported to security team2018-06-29
Issue public2018-07-18
Update 2.4.34 released2018-07-15
Affects2.4.33

Fixed in Apache HTTP Server 2.4.33

low: Out of bound write in mod_authnz_ldap when using too small Accept-Language values (CVE-2017-15710)

mod_authnz_ldap, if configured with AuthLDAPCharsetConfig, uses the Accept-Language header value to lookup the right charset encoding when verifying the user's credentials. If the header value is not present in the charset conversion table, a fallback mechanism is used to truncate it to a two characters value to allow a quick retry (for example, 'en-US' is truncated to 'en'). A header value of less than two characters forces an out of bound write of one NUL byte to a memory location that is not part of the string. In the worst case, quite unlikely, the process would crash which could be used as a Denial of Service attack. In the more likely case, this memory is already reserved for future use and the issue has no effect at all.

Acknowledgements: The Apache HTTP Server security team would like to thank Alex Nichols and Jakob Hirsch for reporting this issue.

Reported to security team2017-12-07
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

low: <FilesMatch> bypass with a trailing newline in the file name (CVE-2017-15715)

The expression specified in <FilesMatch> could match '$' to a newline character in a malicious filename, rather than matching only the end of the filename. This could be exploited in environments where uploads of some files are are externally blocked, but only by matching the trailing portion of the filename.

Acknowledgements: The issue was discovered by Elar Lang - security.elarlang.eu

Reported to security team2017-11-24
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

moderate: Tampering of mod_session data for CGI applications (CVE-2018-1283)

When mod_session is configured to forward its session data to CGI applications (SessionEnv on, not the default), a remote user may influence their content by using a "Session" header. This comes from the "HTTP_SESSION" variable name used by mod_session to forward its data to CGIs, since the prefix "HTTP_" is also used by the Apache HTTP Server to pass HTTP header fields, per CGI specifications. The severity is set to Moderate because "SessionEnv on" is not a default nor common configuration, it should be considered more severe when this is the case though, because of the possible remote exploitation.

Acknowledgements: The issue was discovered internally by the Apache HTTP Server team.

Reported to security team2017-11-14
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

low: Possible out of bound access after failure in reading the HTTP request (CVE-2018-1301)

A specially crafted request could have crashed the Apache HTTP Server prior to version 2.4.33, due to an out of bound access after a size limit is reached by reading the HTTP header. This vulnerability is considered very hard if not impossible to trigger in non-debug mode (both log and build level), so it is classified as low risk for common server usage.

Acknowledgements: The issue was discovered by Robert Swiecki, bug found by honggfuzz.

Reported to security team2018-01-23
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

low: Possible write of after free on HTTP/2 stream shutdown (CVE-2018-1302)

When an HTTP/2 stream was destroyed after being handled, the Apache HTTP Server prior to version 2.4.33 could have written a NULL pointer potentially to an already freed memory. The memory pools maintained by the server make this vulnerabilty hard to trigger in usual configurations, the reporter and the team could not reproduce it outside debug builds, so it is classified as low risk.

Acknowledgements: The issue was discovered by Robert Swiecki, bug found by honggfuzz.

Reported to security team2018-01-23
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17

low: Possible out of bound read in mod_cache_socache (CVE-2018-1303)

A specially crafted HTTP request header could have crashed the Apache HTTP Server prior to version 2.4.33 due to an out of bound read while preparing data to be cached in shared memory. It could be used as a Denial of Service attack against users of mod_cache_socache.

Acknowledgements: The issue was discovered by Robert Swiecki, bug found by honggfuzz.

Reported to security team2018-01-23
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6

low: Weak Digest auth nonce generation in mod_auth_digest (CVE-2018-1312)

When generating an HTTP Digest authentication challenge, the nonce sent to prevent reply attacks was not correctly generated using a pseudo-random seed. In a cluster of servers using a common Digest authentication configuration, HTTP requests could be replayed across servers by an attacker without detection.

Acknowledgements: The issue was discovered by Nicolas Daniels.

Reported to security team2013-03-05
Issue public2018-03-21
Update 2.4.33 released2018-03-21
Affects2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

Fixed in Apache HTTP Server 2.4.28

low: Use-after-free when using <Limit > with an unrecognized method in .htaccess ("OptionsBleed") (CVE-2017-9798)

When an unrecognized HTTP Method is given in an <Limit {method}> directive in an .htaccess file, and that .htaccess file is processed by the corresponding request, the global methods table is corrupted in the current worker process, resulting in erratic behaviour. This behavior may be avoided by listing all unusual HTTP Methods in a global httpd.conf RegisterHttpMethod directive in httpd release 2.4.25 and later. To permit other .htaccess directives while denying the <Limit > directive, see the AllowOverrideList directive. Source code patch (2.4) is at; CVE-2017-9798-patch-2.4.patch Source code patch (2.2) is at; CVE-2017-9798-patch-2.2.patch Note 2.2 is end-of-life, no further release with this fix is planned. Users are encouraged to migrate to 2.4.28 or later for this and other fixes.

Acknowledgements: We would like to thank Hanno Böck for reporting this issue.

Reported to security team2017-07-12
Issue public2017-09-18
Update 2.4.28 released2017-10-05
Update 2.2.35-never released--
Affects2.4.27, 2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.34, 2.2.32, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

Fixed in Apache HTTP Server 2.4.27

important: Uninitialized memory reflection in mod_auth_digest (CVE-2017-9788)

The value placeholder in [Proxy-]Authorization headers of type 'Digest' was not initialized or reset before or between successive key=value assignments. by mod_auth_digest. Providing an initial key with no '=' assignment could reflect the stale value of uninitialized pool memory used by the prior request, leading to leakage of potentially confidential information, and a segfault.

Acknowledgements: We would like to thank Robert Święcki for reporting this issue.

Reported to security team2017-06-28
Issue public2017-07-11
Update 2.4.27 released2017-07-11
Update 2.2.34 released2017-07-11
Affects2.4.26, 2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.32, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

important: Read after free in mod_http2 (CVE-2017-9789)

When under stress, closing many connections, the HTTP/2 handling code would sometimes access memory after it has been freed, resulting in potentially erratic behaviour.

Acknowledgements: We would like to thank Robert Święcki for reporting this issue.

Reported to security team2017-06-30
Issue public2017-07-11
Update 2.4.27 released2017-07-11
Affects2.4.26

Fixed in Apache HTTP Server 2.4.26

important: ap_get_basic_auth_pw() Authentication Bypass (CVE-2017-3167)

Use of the ap_get_basic_auth_pw() by third-party modules outside of the authentication phase may lead to authentication requirements being bypassed. Third-party module writers SHOULD use ap_get_basic_auth_components(), available in 2.2.34 and 2.4.26, instead of ap_get_basic_auth_pw(). Modules which call the legacy ap_get_basic_auth_pw() during the authentication phase MUST either immediately authenticate the user after the call, or else stop the request immediately with an error response, to avoid incorrectly authenticating the current request.

Acknowledgements: We would like to thank Emmanuel Dreyfus for reporting this issue.

Reported to security team2017-02-06
Issue public2017-06-19
Update 2.4.26 released2017-06-19
Update 2.2.34 released2017-07-11
Affects2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.32, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

important: mod_ssl Null Pointer Dereference (CVE-2017-3169)

mod_ssl may dereference a NULL pointer when third-party modules call ap_hook_process_connection() during an HTTP request to an HTTPS port.

Acknowledgements: We would like to thank Vasileios Panopoulos and AdNovum Informatik AG for reporting this issue.

Reported to security team2016-12-05
Issue public2017-06-19
Update 2.4.26 released2017-06-19
Update 2.2.34 released2017-07-11
Affects2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.32, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

important: mod_http2 Null Pointer Dereference (CVE-2017-7659)

A maliciously constructed HTTP/2 request could cause mod_http2 to dereference a NULL pointer and crash the server process.

Acknowledgements: We would like to thank Robert Święcki for reporting this issue.

Reported to security team2016-11-18
Issue public2017-06-19
Update 2.4.26 released2017-06-19
Affects2.4.25

important: ap_find_token() Buffer Overread (CVE-2017-7668)

The HTTP strict parsing changes added in 2.2.32 and 2.4.24 introduced a bug in token list parsing, which allows ap_find_token() to search past the end of its input string. By maliciously crafting a sequence of request headers, an attacker may be able to cause a segmentation fault, or to force ap_find_token() to return an incorrect value.

Acknowledgements: We would like to thank Javier Jiménez (javijmor@gmail.com) for reporting this issue.

Reported to security team2017-05-06
Issue public2017-06-19
Update 2.4.26 released2017-06-19
Update 2.2.34 released2017-07-11
Affects2.4.25, 2.2.32

important: mod_mime Buffer Overread (CVE-2017-7679)

mod_mime can read one byte past the end of a buffer when sending a malicious Content-Type response header.

Acknowledgements: We would like to thank ChenQin and Hanno Böck for reporting this issue.

Reported to security team2015-11-15
Issue public2017-06-19
Update 2.4.26 released2017-06-19
Update 2.2.34 released2017-07-11
Affects2.4.25, 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.32, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

Fixed in Apache HTTP Server 2.4.25

low: Padding Oracle in Apache mod_session_crypto (CVE-2016-0736)

Prior to Apache HTTP release 2.4.25, mod_sessioncrypto was encrypting its data/cookie using the configured ciphers with possibly either CBC or ECB modes of operation (AES256-CBC by default), hence no selectable or builtin authenticated encryption. This made it vulnerable to padding oracle attacks, particularly with CBC. An authentication tag (SipHash MAC) is now added to prevent such attacks.

Acknowledgements: We would like to thank individuals at the RedTeam Pentesting GmbH for reporting this issue.

Reported to security team2016-01-20
Issue public2016-12-20
Update 2.4.25 released2016-12-20
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

low: DoS vulnerability in mod_auth_digest (CVE-2016-2161)

Malicious input to mod_auth_digest will cause the server to crash, and each instance continues to crash even for subsequently valid requests.

Acknowledgements: We would like to thank Maksim Malyutin for reporting this issue.

Reported to security team2016-07-11
Issue public2016-12-20
Update 2.4.25 released2016-12-20
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

moderate: mod_userdir CRLF injection (CVE-2016-4975)

Possible CRLF injection allowing HTTP response splitting attacks for sites which use mod_userdir. This issue was mitigated by changes made in 2.4.25 and 2.2.32 which prohibit CR or LF injection into the "Location" or other outbound header key or value.

Acknowledgements: The issue was discovered by Sergey Bobrov

Reported to security team2016-07-24
Issue public2018-08-14
Update 2.4.25 released2016-12-20
Update 2.2.32 released2017-01-13
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

n/a: HTTP_PROXY environment variable "httpoxy" mitigation (CVE-2016-5387)

HTTP_PROXY is a well-defined environment variable in a CGI process, which collided with a number of libraries which failed to avoid colliding with this CGI namespace. A mitigation is provided for the httpd CGI environment to avoid populating the "HTTP_PROXY" variable from a "Proxy:" header, which has never been registered by IANA. This workaround and patch are documented in the ASF Advisory at asf-httpoxy-response.txt and incorporated in the 2.4.25 and 2.2.32 releases. Note: This is not assigned an httpd severity, as it is a defect in other software which overloaded well-established CGI environment variables, and does not reflect an error in HTTP server software.

Acknowledgements: We would like to thank Dominic Scheirlinck and Scott Geary of Vend for reporting and proposing a fix for this issue.

Reported to security team2016-07-02
Issue public2016-07-18
Update 2.4.25 released2016-12-20
Update 2.2.32 released2016-07-18
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

low: HTTP/2 CONTINUATION denial of service (CVE-2016-8740)

The HTTP/2 protocol implementation (mod_http2) had an incomplete handling of the LimitRequestFields directive. This allowed an attacker to inject unlimited request headers into the server, leading to eventual memory exhaustion.

Acknowledgements: We would like to thank Naveen Tiwari and CDF/SEFCOM at Arizona State University to reporting this issue.

Reported to security team2016-11-22
Issue public2016-12-04
Update 2.4.25 released2016-12-20
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17

important: Apache HTTP Request Parsing Whitespace Defects (CVE-2016-8743)

Apache HTTP Server, prior to release 2.4.25 (and 2.2.32), accepted a broad pattern of unusual whitespace patterns from the user-agent, including bare CR, FF, VTAB in parsing the request line and request header lines, as well as HTAB in parsing the request line. Any bare CR present in request lines was treated as whitespace and remained in the request field member "the_request", while a bare CR in the request header field name would be honored as whitespace, and a bare CR in the request header field value was retained the input headers array. Implied additional whitespace was accepted in the request line and prior to the ':' delimiter of any request header lines.

RFC7230 Section 3.5 calls out some of these whitespace exceptions, and section 3.2.3 eliminated and clarified the role of implied whitespace in the grammer of this specification. Section 3.1.1 requires exactly one single SP between the method and request-target, and between the request-target and HTTP-version, followed immediately by a CRLF sequence. None of these fields permit any (unencoded) CTL character whatsoever. Section 3.2.4 explicitly disallowed any whitespace from the request header field prior to the ':' character, while Section 3.2 disallows all CTL characters in the request header line other than the HTAB character as whitespace.

These defects represent a security concern when httpd is participating in any chain of proxies or interacting with back-end application servers, either through mod_proxy or using conventional CGI mechanisms. In each case where one agent accepts such CTL characters and does not treat them as whitespace, there is the possiblity in a proxy chain of generating two responses from a server behind the uncautious proxy agent. In a sequence of two requests, this results in request A to the first proxy being interpreted as requests A + A' by the backend server, and if requests A and B were submitted to the first proxy in a keepalive connection, the proxy may interpret response A' as the response to request B, polluting the cache or potentially serving the A' content to a different downstream user-agent.

These defects are addressed with the release of Apache HTTP Server 2.4.25 and coordinated by a new directive; HttpProtocolOptions Strict which is the default behavior of 2.4.25 and later.

By toggling from 'Strict' behavior to 'Unsafe' behavior, some of the restrictions may be relaxed to allow some invalid HTTP/1.1 clients to communicate with the server, but this will reintroduce the possibility of the problems described in this assessment. Note that relaxing the behavior to 'Unsafe' will still not permit raw CTLs other than HTAB (where permitted), but will allow other RFC requirements to not be enforced, such as exactly two SP characters in the request line.

Acknowledgements: We would like to thank David Dennerline at IBM Security's X-Force Researchers as well as Régis Leroy for each reporting this issue.

Reported to security team2016-02-10
Issue public2016-12-20
Update 2.4.25 released2016-12-20
Update 2.2.32 released2017-01-13
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

low: IP address spoofing when proxying using mod_remoteip and mod_rewrite (CVE-2020-11985)

For configurations using proxying with mod_remoteip and certain mod_rewrite rules, an attacker could spoof their IP address for logging and PHP scripts. Note this issue was fixed in Apache HTTP Server 2.4.24 but was retrospectively allocated a low severity CVE in 2020.

Acknowledgements:

Reported to security team2016-10-13
Issue public2020-08-07
Update 2.4.25 released2020-08-07
Affects2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

Fixed in Apache HTTP Server 2.4.23

important: TLS/SSL X.509 client certificate auth bypass with HTTP/2 (CVE-2016-4979)

For configurations enabling support for HTTP/2, SSL client certificate validation was not enforced if configured, allowing clients unauthorized access to protected resources over HTTP/2. This issue affected releases 2.4.18 and 2.4.20 only.

Acknowledgements: This issue was reported by Erki Aring.

Reported to security team2016-06-30
Issue public2016-07-05
Update 2.4.23 released2016-07-05
Affects2.4.20, 2.4.18

Fixed in Apache HTTP Server 2.4.20

low: mod_http2: denial of service by thread starvation (CVE-2016-1546)

By manipulating the flow control windows on streams, a client was able to block server threads for long times, causing starvation of worker threads. Connections could still be opened, but no streams where processed for these. This issue affected HTTP/2 support in 2.4.17 and 2.4.18.

Acknowledgements: This issue was reported by Noam Mazor.

Reported to security team2016-02-02
Issue public2016-04-11
Update 2.4.20 released2016-04-11
Affects2.4.18, 2.4.17

Fixed in Apache HTTP Server 2.4.16

low: mod_lua: Crash in websockets PING handling (CVE-2015-0228)

A stack recursion crash in the mod_lua module was found. A Lua script executing the r:wsupgrade() function could crash the process if a malicious client sent a carefully crafted PING request. This issue affected releases 2.4.7 through 2.4.12 inclusive.

Acknowledgements: This issue was reported by Guido Vranken.

Reported to security team2015-01-28
Issue public2015-02-04
Update 2.4.16 released2015-07-15
Affects2.4.12, 2.4.10, 2.4.9, 2.4.7

low: Crash in ErrorDocument 400 handling (CVE-2015-0253)

A crash in ErrorDocument handling was found. If ErrorDocument 400 was configured pointing to a local URL-path with the INCLUDES filter active, a NULL dereference would occur when handling the error, causing the child process to crash. This issue affected the 2.4.12 release only.

Reported to security team2015-02-03
Issue public2015-03-05
Update 2.4.16 released2015-07-15
Affects2.4.12

low: HTTP request smuggling attack against chunked request parser (CVE-2015-3183)

An HTTP request smuggling attack was possible due to a bug in parsing of chunked requests. A malicious client could force the server to misinterpret the request length, allowing cache poisoning or credential hijacking if an intermediary proxy is in use.

Acknowledgements: This issue was reported by Régis Leroy.

Reported to security team2015-04-04
Issue public2015-06-09
Update 2.4.16 released2015-07-15
Update 2.2.31 released2015-07-16
Affects2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

low: ap_some_auth_required API unusable (CVE-2015-3185)

A design error in the "ap_some_auth_required" function renders the API unusuable in httpd 2.4.x. In particular the API is documented to answering if the request required authentication but only answers if there are Require lines in the applicable configuration. Since 2.4.x Require lines are used for authorization as well and can appear in configurations even when no authentication is required and the request is entirely unrestricted. This could lead to modules using this API to allow access when they should otherwise not do so. API users should use the new ap_some_authn_required API added in 2.4.16 instead.

Acknowledgements: This issue was reported by Ben Reser.

Reported to security team2013-08-05
Issue public2015-06-09
Update 2.4.16 released2015-07-15
Affects2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0

Fixed in Apache HTTP Server 2.4.12

low: HTTP Trailers processing bypass (CVE-2013-5704)

HTTP trailers could be used to replace HTTP headers late during request processing, potentially undoing or otherwise confusing modules that examined or modified request headers earlier. This fix adds the "MergeTrailers" directive to restore legacy behavior.

Acknowledgements: This issue was reported by Martin Holst Swende.

Reported to security team2013-09-06
Issue public2013-10-19
Update 2.4.12 released2015-01-30
Update 2.2.29 released2014-09-03
Affects2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

low: mod_cache crash with empty Content-Type header (CVE-2014-3581)

A NULL pointer deference was found in mod_cache. A malicious HTTP server could cause a crash in a caching forward proxy configuration. This crash would only be a denial of service if using a threaded MPM.

Reported to security team2014-09-08
Issue public2014-09-08
Update 2.4.12 released2015-01-30
Affects2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

low: mod_proxy_fcgi out-of-bounds memory read (CVE-2014-3583)

An out-of-bounds memory read was found in mod_proxy_fcgi. A malicious FastCGI server could send a carefully crafted response which could lead to a crash when reading past the end of a heap memory or stack buffer. This issue affects version 2.4.10 only.

Acknowledgements: This issue was reported by Teguh P. Alko.

Reported to security team2014-09-17
Issue public2014-11-12
Update 2.4.12 released2015-01-30
Affects2.4.10

low: mod_lua multiple "Require" directive handling is broken (CVE-2014-8109)

Fix handling of the Require line in mod_lau when a LuaAuthzProvider is used in multiple Require directives with different arguments. This could lead to different authentication rules than expected.

Reported to security team2014-11-09
Issue public2014-11-09
Update 2.4.12 released2015-01-30
Affects2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

Fixed in Apache HTTP Server 2.4.10

moderate: mod_proxy denial of service (CVE-2014-0117)

A flaw was found in mod_proxy in httpd versions 2.4.6 to 2.4.9. A remote attacker could send a carefully crafted request to a server configured as a reverse proxy, and cause the child process to crash. This could lead to a denial of service against a threaded MPM.

Acknowledgements: This issue was reported by Marek Kroemeke, AKAT-1 and 22733db72ab3ed94b5f8a1ffcde850251fe6f466 via HP ZDI

Reported to security team2014-04-07
Issue public2014-07-15
Update 2.4.10 released2014-07-15
Affects2.4.9, 2.4.7, 2.4.6

moderate: mod_deflate denial of service (CVE-2014-0118)

A resource consumption flaw was found in mod_deflate. If request body decompression was configured (using the "DEFLATE" input filter), a remote attacker could cause the server to consume significant memory and/or CPU resources. The use of request body decompression is not a common configuration.

Acknowledgements: This issue was reported by Giancarlo Pellegrino and Davide Balzarotti

Reported to security team2014-02-19
Issue public2014-07-14
Update 2.4.10 released2014-07-15
Update 2.2.29 released2014-09-03
Affects2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

moderate: mod_status buffer overflow (CVE-2014-0226)

A race condition was found in mod_status. An attacker able to access a public server status page on a server using a threaded MPM could send a carefully crafted request which could lead to a heap buffer overflow. Note that it is not a default or recommended configuration to have a public accessible server status page.

Acknowledgements: This issue was reported by Marek Kroemeke, AKAT-1 and 22733db72ab3ed94b5f8a1ffcde850251fe6f466 via HP ZDI

Reported to security team2014-05-30
Issue public2014-07-14
Update 2.4.10 released2014-07-15
Update 2.2.29 released2014-09-03
Affects2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

important: mod_cgid denial of service (CVE-2014-0231)

A flaw was found in mod_cgid. If a server using mod_cgid hosted CGI scripts which did not consume standard input, a remote attacker could cause child processes to hang indefinitely, leading to denial of service.

Acknowledgements: This issue was reported by Rainer Jung of the ASF

Reported to security team2014-06-16
Issue public2014-07-14
Update 2.4.10 released2014-07-15
Update 2.2.29 released2014-09-03
Affects2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

important: WinNT MPM denial of service (CVE-2014-3523)

A flaw was found in the WinNT MPM in httpd versions 2.4.1 to 2.4.9, when using the default AcceptFilter for that platform. A remote attacker could send carefully crafted requests that would leak memory and eventually lead to a denial of service against the server.

Acknowledgements: This issue was reported by Jeff Trawick of the ASF

Reported to security team2014-07-01
Issue public2014-07-15
Update 2.4.10 released2014-07-15
Affects2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1

Fixed in Apache HTTP Server 2.4.9

moderate: mod_dav crash (CVE-2013-6438)

XML parsing code in mod_dav incorrectly calculates the end of the string when removing leading spaces and places a NUL character outside the buffer, causing random crashes. This XML parsing code is only used with DAV provider modules that support DeltaV, of which the only publicly released provider is mod_dav_svn.

Acknowledgements: This issue was reported by Ning Zhang & Amin Tora of Neustar

Reported to security team2013-12-10
Issue public2014-03-17
Update 2.4.9 released2014-03-17
Update 2.2.27 released2014-03-26
Affects2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

low: mod_log_config crash (CVE-2014-0098)

A flaw was found in mod_log_config. A remote attacker could send a specific truncated cookie causing a crash. This crash would only be a denial of service if using a threaded MPM.

Acknowledgements: This issue was reported by Rainer M Canavan

Reported to security team2014-02-25
Issue public2014-03-17
Update 2.4.9 released2014-03-17
Update 2.2.27 released2014-03-26
Affects2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

Fixed in Apache HTTP Server 2.4.7

low: mod_cache crash (CVE-2013-4352)

A NULL pointer dereference was found in mod_cache. A malicious HTTP server could cause a crash in a caching forward proxy configuration. (Note that this vulnerability was fixed in the 2.4.7 release, but the security impact was not disclosed at the time of the release.)

Reported to security team2013-09-14
Issue public2014-07-14
Update 2.4.7 released2013-11-26
Affects2.4.6

Fixed in Apache HTTP Server 2.4.6

moderate: mod_dav crash (CVE-2013-1896)

Sending a MERGE request against a URI handled by mod_dav_svn with the source href (sent as part of the request body as XML) pointing to a URI that is not configured for DAV will trigger a segfault.

Acknowledgements: This issue was reported by Ben Reser

Reported to security team2013-03-07
Issue public2013-05-23
Update 2.4.6 released2013-07-22
Update 2.2.25 released2013-07-22
Affects2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

moderate: mod_session_dbd session fixation flaw (CVE-2013-2249)

A flaw in mod_session_dbd caused it to proceed with save operations for a session without considering the dirty flag and the requirement for a new session ID.

Acknowledgements: This issue was reported by Takashi Sato

Reported to security team2013-05-29
Issue public2013-07-22
Update 2.4.6 released2013-07-22
Affects2.4.4, 2.4.3, 2.4.2, 2.4.1

Fixed in Apache HTTP Server 2.4.4

low: XSS due to unescaped hostnames (CVE-2012-3499)

Various XSS flaws due to unescaped hostnames and URIs HTML output in mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp.

Acknowledgements: This issue was reported by Niels Heinen of Google

Reported to security team2012-07-11
Issue public2013-02-18
Update 2.4.4 released2013-02-25
Update 2.2.24 released2013-02-25
Affects2.4.3, 2.4.2, 2.4.1, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

moderate: XSS in mod_proxy_balancer (CVE-2012-4558)

A XSS flaw affected the mod_proxy_balancer manager interface.

Acknowledgements: This issue was reported by Niels Heinen of Google

Reported to security team2012-10-07
Issue public2013-02-18
Update 2.4.4 released2013-02-25
Update 2.2.24 released2013-02-25
Affects2.4.3, 2.4.2, 2.4.1, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

Fixed in Apache HTTP Server 2.4.3

low: XSS in mod_negotiation when untrusted uploads are supported (CVE-2012-2687)

Possible XSS for sites which use mod_negotiation and allow untrusted uploads to locations which have MultiViews enabled. Note: This issue is also known as CVE-2008-0455.

Reported to security team2012-05-31
Issue public2012-06-13
Update 2.2.23 released2012-09-13
Update 2.4.3 released2012-08-21
Affects2.4.2, 2.4.1, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

important: Response mixup when using mod_proxy_ajp or mod_proxy_http (CVE-2012-3502)

The modules mod_proxy_ajp and mod_proxy_http did not always close the connection to the back end server when necessary as part of error handling. This could lead to an information disclosure due to a response mixup between users.

Reported to security team2012-08-16
Issue public2012-08-16
Update 2.4.3 released2012-08-21
Affects2.4.2, 2.4.1

Fixed in Apache HTTP Server 2.4.2

low: insecure LD_LIBRARY_PATH handling (CVE-2012-0883)

Insecure handling of LD_LIBRARY_PATH was found that could lead to the current working directory to be searched for DSOs. This could allow a local user to execute code as root if an administrator runs apachectl from an untrusted directory.

Reported to security team2012-02-14
Issue public2012-03-02
Update 2.4.2 released2012-04-17
Update 2.2.23 released2012-09-13
Affects2.4.1, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0