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 of Apache httpd 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 httpd 2.4.42
-
low: mod_proxy_ftp use of uninitialized value (CVE-2020-1934)
- Apache HTTP Server versions 2.4.0 to 2.41
mod_proxy_ftp use of uninitialized value with maliciosu FTP backend.
Acknowledgements: The issue was discovered by Chamal De Silva
3rd January 2020 |
1st April 2020 |
2.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_rewrite CWE-601 open redirect (CVE-2020-1927)
- Apache HTTP Server versions 2.4.0 to 2.41
Some mod_rewrite configurations vulnerable to open redirect.
Acknowledgements: The issue was discovered by Fabrice Perez
5th December 2019 |
1st April 2020 |
2.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 httpd 2.4.41
-
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
9th July 2019 |
14th August 2019 |
14th August 2019 |
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_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
26th March 2019 |
14th August 2019 |
14th August 2019 |
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 |
-
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>.
12th April 2019 |
14th August 2019 |
14th August 2019 |
2.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 |
-
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>.
10th April 2019 |
14th August 2019 |
14th August 2019 |
2.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, 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.
10th April 2019 |
14th August 2019 |
14th August 2019 |
2.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: 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)
23rd July 2019 |
14th August 2019 |
14th August 2019 |
2.4.38, 2.4.37, 2.4.35, 2.4.34, 2.4.33 |
Fixed in Apache httpd 2.4.39
-
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.
22nd February 2019 |
1st April 2019 |
1st April 2019 |
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 |
-
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.
29th January 2019 |
1st April 2019 |
1st April 2019 |
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 |
-
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.
23rd January 2019 |
1st April 2019 |
1st April 2019 |
2.4.38, 2.4.37 |
-
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.
29th January 2019 |
1st April 2019 |
1st April 2019 |
2.4.38, 2.4.37, 2.4.35, 2.4.34 |
-
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>.
29th January 2019 |
1st April 2019 |
1st April 2019 |
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 |
-
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.
20th January 2019 |
1st April 2019 |
1st April 2019 |
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 httpd 2.4.38
-
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.
1st January 2019 |
22nd January 2019 |
28th February 2019 |
2.4.37 |
-
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.
8th October 2018 |
22nd January 2019 |
28th February 2019 |
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: 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.
16th October 2018 |
22nd January 2019 |
28th February 2019 |
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 |
Fixed in Apache httpd 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.
18th July 2018 |
25th September 2018 |
29th September 2018 |
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 |
Fixed in Apache httpd 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.
8th May 2018 |
18th July 2018 |
15th July 2018 |
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 |
-
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>.
29th June 2018 |
18th July 2018 |
15th July 2018 |
2.4.33 |
Fixed in Apache httpd 2.4.33
-
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.
23rd January 2018 |
21st March 2018 |
21st March 2018 |
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 |
-
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.
23rd January 2018 |
21st March 2018 |
21st March 2018 |
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: 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.
23rd January 2018 |
21st March 2018 |
21st March 2018 |
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 |
-
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.
5th March 2013 |
21st March 2018 |
21st March 2018 |
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 |
-
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
24th November 2017 |
21st March 2018 |
21st March 2018 |
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 |
-
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.
7th December 2017 |
21st March 2018 |
21st March 2018 |
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 |
-
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.
14th November 2017 |
21st March 2018 |
21st March 2018 |
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 |
Fixed in Apache httpd 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;
Source code patch (2.2) is at;
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.
12th July 2017 |
18th September 2017 |
5th October 2017 |
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 httpd 2.4.27
-
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.
30th June 2017 |
11th July 2017 |
11th July 2017 |
2.4.26 |
-
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.
28th June 2017 |
11th July 2017 |
11th July 2017 |
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 httpd 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.
6th February 2017 |
19th June 2017 |
19th June 2017 |
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 |
-
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.
5th December 2016 |
19th June 2017 |
19th June 2017 |
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 |
-
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.
18th November 2016 |
19th June 2017 |
19th June 2017 |
2.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.
6th May 2017 |
19th June 2017 |
19th June 2017 |
2.4.25 |
-
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.
15th November 2015 |
19th June 2017 |
19th June 2017 |
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 httpd 2.4.25
-
important: Apache HTTP Request Parsing Whitespace Defects (CVE-2016-8743)
- Apache HTTP Server, prior to release 2.4.25 (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;
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.
10th February 2016 |
20th December 2016 |
20th December 2016 |
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: 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.
22nd November 2016 |
4th December 2016 |
20th December 2016 |
2.4.23, 2.4.20, 2.4.18, 2.4.17 |
-
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.
11th July 2016 |
20th December 2016 |
20th December 2016 |
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: 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.
20th January 2016 |
20th December 2016 |
20th December 2016 |
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: 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
24th July 2016 |
14th August 2018 |
20th December 2016 |
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 |
-
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.
2nd July 2016 |
18th July 2016 |
20th December 2016 |
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 httpd 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.
30th June 2016 |
5th July 2016 |
5th July 2016 |
2.4.20, 2.4.18 |
Fixed in Apache httpd 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.
2nd February 2016 |
11th April 2016 |
11th April 2016 |
2.4.18, 2.4.17 |
Fixed in Apache httpd 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.
28th January 2015 |
4th February 2015 |
15th July 2015 |
2.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.
3rd February 2015 |
5th March 2015 |
15th July 2015 |
2.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.
4th April 2015 |
9th June 2015 |
15th July 2015 |
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: 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.
5th August 2013 |
9th June 2015 |
15th July 2015 |
2.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 httpd 2.4.12
-
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.
9th November 2014 |
30th January 2015 |
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: 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.
17th September 2014 |
12th November 2014 |
30th January 2015 |
2.4.10 |
-
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.
8th September 2014 |
30th January 2015 |
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: 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.
6th September 2013 |
19th October 2013 |
30th January 2015 |
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 httpd 2.4.10
-
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
16th June 2014 |
14th July 2014 |
15th July 2014 |
2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1 |
-
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
1st July 2014 |
15th July 2014 |
15th July 2014 |
2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1 |
-
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
7th April 2014 |
15th July 2014 |
15th July 2014 |
2.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
19th February 2014 |
14th July 2014 |
15th July 2014 |
2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1 |
-
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
30th May 2014 |
14th July 2014 |
15th July 2014 |
2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1 |
Fixed in Apache httpd 2.4.9
-
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
25th February 2014 |
17th March 2014 |
17th March 2014 |
2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1 |
-
- 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
10th December 2013 |
17th March 2014 |
17th March 2014 |
2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1 |
Fixed in Apache httpd 2.4.7
-
- 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.)
14th September 2013 |
14th July 2014 |
26th November 2013 |
2.4.6 |
Fixed in Apache httpd 2.4.6
-
- 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
7th March 2013 |
23rd May 2013 |
22nd July 2013 |
2.4.4, 2.4.3, 2.4.2, 2.4.1 |
-
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
29th May 2013 |
22nd July 2013 |
22nd July 2013 |
2.4.4, 2.4.3, 2.4.2, 2.4.1 |
Fixed in Apache httpd 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
11th July 2012 |
18th February 2013 |
25th February 2013 |
2.4.3, 2.4.2, 2.4.1 |
-
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
7th October 2012 |
18th February 2013 |
25th February 2013 |
2.4.3, 2.4.2, 2.4.1 |
Fixed in Apache httpd 2.4.3
-
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.
16th August 2012 |
21st August 2012 |
2.4.2, 2.4.1 |
-
low: XSS in mod_negotiation when untrusted uploads are supported (CVE-2012-2687)
|