Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6BB9B200CBD for ; Thu, 6 Jul 2017 19:42:57 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6A0AA167031; Thu, 6 Jul 2017 17:42:57 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id E446516702F for ; Thu, 6 Jul 2017 19:42:54 +0200 (CEST) Received: (qmail 99659 invoked by uid 500); 6 Jul 2017 17:42:54 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 99649 invoked by uid 99); 6 Jul 2017 17:42:54 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jul 2017 17:42:54 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 0F6B23A1EA0 for ; Thu, 6 Jul 2017 17:42:51 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r20343 [2/3] - /dev/httpd/ Date: Thu, 06 Jul 2017 17:42:48 -0000 To: cvs@httpd.apache.org From: jim@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20170706174251.0F6B23A1EA0@svn01-us-west.apache.org> archived-at: Thu, 06 Jul 2017 17:42:57 -0000 Added: dev/httpd/CHANGES_2.4.27 ============================================================================== --- dev/httpd/CHANGES_2.4.27 (added) +++ dev/httpd/CHANGES_2.4.27 Thu Jul 6 17:42:48 2017 @@ -0,0 +1,5428 @@ + -*- coding: utf-8 -*- + +Changes with Apache 2.4.27 + + *) COMPATIBILITY: mod_lua: Remove the undocumented exported 'apr_table' + global variable when using Lua 5.2 or later. This was exported as a + side effect from luaL_register, which is no longer supported as of + Lua 5.2 which deprecates pollution of the global namespace. + [Rainer Jung] + + *) COMPATIBILITY: mod_http2: Disable and give warning when using Prefork. + The server will continue to run, but HTTP/2 will no longer be negotiated. + [Stefan Eissing] + + *) COMPATIBILITY: mod_proxy_fcgi: Revert to 2.4.20 FCGI behavior for the + default ProxyFCGIBackendType, fixing a regression with PHP-FPM. PR 61202. + [Jacob Champion, Jim Jagielski] + + *) mod_lua: Improve compatibility with Lua 5.1, 5.2 and 5.3. + PR58188, PR60831, PR61245. [Rainer Jung] + + *) mod_http2: Simplify ready queue, less memory and better performance. Update + mod_http2 version to 1.10.7. [Stefan Eissing] + + *) Allow single-char field names inadvertantly disallowed in 2.4.25. + PR 61220. [Yann Ylavic] + + *) htpasswd / htdigest: Do not apply the strict permissions of the temporary + passwd file to a possibly existing passwd file. PR 61240. [Ruediger Pluem] + + *) core: Avoid duplicate HEAD in Allow header. + This is a regression in 2.4.24 (unreleased), 2.4.25 and 2.4.26. + PR 61207. [Christophe Jaillet] + +Changes with Apache 2.4.26 + + *) SECURITY: CVE-2017-7679 (cve.mitre.org) + mod_mime can read one byte past the end of a buffer when sending a + malicious Content-Type response header. [Yann Ylavic] + + *) SECURITY: CVE-2017-7668 (cve.mitre.org) + 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. + [Jacob Champion] + + *) SECURITY: CVE-2017-7659 (cve.mitre.org) + A maliciously constructed HTTP/2 request could cause mod_http2 to + dereference a NULL pointer and crash the server process. + + *) SECURITY: CVE-2017-3169 (cve.mitre.org) + mod_ssl may dereference a NULL pointer when third-party modules call + ap_hook_process_connection() during an HTTP request to an HTTPS port. + [Yann Ylavic] + + *) SECURITY: CVE-2017-3167 (cve.mitre.org) + Use of the ap_get_basic_auth_pw() by third-party modules outside of the + authentication phase may lead to authentication requirements being + bypassed. + [Emmanuel Dreyfus , Jacob Champion, Eric Covener] + + *) HTTP/2 support no longer tagged as "experimental" but is instead considered + fully production ready. + + *) mod_http2: Fix for possible CPU busy loop introduced in v1.10.3 where a stream may keep + the session in continuous check for state changes that never happen. + [Stefan Eissing] + + *) mod_proxy_wstunnel: Add "upgrade" parameter to allow upgrade to other + protocols. [Jean-Frederic Clere] + + *) MPMs unix: Place signals handlers and helpers out of DSOs to avoid + a possible crash if a signal is caught during (graceful) restart. + PR 60487. [Yann Ylavic] + + *) mod_rewrite: When a substitution is a fully qualified URL, and the + scheme/host/port matches the current virtual host, stop interpreting the + path component as a local path just because the first component of the + path exists in the filesystem. Adds RewriteOption "LegacyPrefixDocRoot" + to revert to previous behavior. PR60009. + [Hank Ibell ] + + *) core: ap_parse_form_data() URL-decoding doesn't work on EBCDIC + platforms. PR61124. [Hank Ibell ] + + *) ab: enable option processing for setting a custom HTTP method also for + non-SSL builds. [Rainer Jung] + + *) core: EBCDIC fixes for interim responses with additional headers. + [Eric Covener] + + *) mod_env: when processing a 'SetEnv' directive, warn if the environment + variable name includes a '='. It is likely a configuration error. + PR 60249 [Christophe Jaillet] + + *) Evaluate nested If/ElseIf/Else configuration blocks. + [Luca Toscano, Jacob Champion] + + *) mod_rewrite: Add 'BNP' (backreferences-no-plus) flag to RewriteRule to + allow spaces in backreferences to be encoded as %20 instead of '+'. + [Eric Covener] + + *) mod_rewrite: Add the possibility to limit the escaping to specific + characters in backreferences by listing them in the B flag. + [Eric Covener] + + *) mod_substitute: Fix spurious AH01328 (Line too long) errors on EBCDIC + systems. [Eric Covener] + + *) mod_http2: fail requests without ERROR log in case we need to read interim + responses and see only garbage. This can happen if proxied servers send + data where none should be, e.g. a body for a HEAD request. [Stefan Eissing] + + *) mod_proxy_http2: adding support for Reverse Proxy Request headers. + [Stefan Eissing] + + *) mod_http2: fixed possible deadlock that could occur when connections were + terminated early with ongoing streams. Fixed possible hanger with timeout + on race when connection considers itself idle. [Stefan Eissing] + + *) mod_http2: MaxKeepAliveRequests now limits the number of times a + slave connection gets reused. [Stefan Eissing] + + *) mod_brotli: Add a new module for dynamic Brotli (RFC 7932) compression. + [Evgeny Kotkov] + + *) mod_proxy_http2: Fixed bug in re-attempting proxy requests after + connection error. Reliability of reconnect handling improved. + [Stefan Eissing] + + *) mod_http2: better performance, eliminated need for nested locks and + thread privates. Moving request setups from the main connection to the + worker threads. Increase number of spare connections kept. + [Stefan Eissing] + + *) mod_http2: input buffering and dynamic flow windows for increased + throughput. Requires nghttp2 >= v1.5.0 features. Announced at startup + in mod_http2 INFO log as feature 'DWINS'. [Stefan Eissing] + + *) mod_http2: h2 workers with improved scalability for better scheduling + performance. There are H2MaxWorkers threads created at start and the + number is kept constant for now. [Stefan Eissing] + + *) mod_http2: obsoleted option H2SessionExtraFiles, will be ignored and + just log a warning. [Stefan Eissing] + + *) mod_autoindex: Add IndexOptions UseOldDateFormat to allow the date + format from 2.2 in the Last Modified column. PR60846. + [Hank Ibell ] + + *) core: Add %{REMOTE_PORT} to the expression parser. PR59938 + [Hank Ibell ] + + *) mod_cache: Fix a regression in 2.4.25 for the forward proxy case by + computing and using the same entity key according to when the cache + checks, loads and saves the request. + PR 60577. [Yann Ylavic] + + *) mod_proxy_hcheck: Don't validate timed out responses. [Yann Ylavic] + + *) mod_proxy_hcheck: Ensure thread-safety when concurrent healthchecks are + in use (ProxyHCTPsize > 0). PR 60071. [Yann Ylavic, Jim Jagielski] + + *) core: %{DOCUMENT_URI} used in nested SSI expressions should point to the + URI originally requsted by the user, not the nested documents URI. This + restores the behavior of this variable to match the "legacy" SSI parser. + PR60624. [Hank Ibell ] + + *) mod_proxy_fcgi: Add ProxyFCGISetEnvIf to fixup CGI environment + variables just before invoking the FastCGI. [Eric Covener, + Jacob Champion] + + *) mod_proxy_fcgi: Return to 2.4.20-and-earlier behavior of leaving + a "proxy:fcgi://" prefix in the SCRIPT_FILENAME environment variable by + default. Add ProxyFCGIBackendType to allow the type of backend to be + specified so these kinds of fixups can be restored without impacting + FPM. PR60576 [Eric Covener, Jim Jagielski] + + *) mod_ssl: work around leaks on (graceful) restart. [Yann Ylavic] + + *) mod_ssl: Add support for OpenSSL 1.1.0. [Rainer Jung] + + *) Don't set SO_REUSEPORT unless ListenCoresBucketsRatio is greater + than zero. [Eric Covener] + + *) mod_http2: moving session cleanup to pre_close hook to avoid races with + modules already shut down and slave connections still operating. + [Stefan Eissing] + + *) mod_lua: Support for Lua 5.3 + + *) mod_proxy_http2: support for ProxyPreserverHost directive. [Stefan Eissing] + + *) mod_http2: fix for crash when running out of memory. + [Robert Swiecki , Stefan Eissing] + + *) mod_proxy_fcgi: Return HTTP 504 rather than 503 in case of proxy timeout. + [Luca Toscano] + + *) mod_http2: not counting file buckets again stream max buffer limits. + Effectively transfering static files in one step from slave to master + connection. [Stefan Eissing] + + *) mod_http2: comforting ap_check_pipeline() on slave connections + to facilitate reuse (see https://github.com/icing/mod_h2/issues/128). + [Stefan Eissing, reported by Armin Abfalterer] + + *) mod_http2: http/2 streams now with state handling/transitions as defined + in RFC7540. Stream cleanup/connection shutdown reworked to become easier + to understand/maintain/debug. Added many asserts on state and cleanup + transitions. [Stefan Eissing] + + *) mod_auth_digest: Use an anonymous shared memory segment by default, + preventing startup failure after unclean shutdown. PR 54622. + [Jan Kaluza] + + *) mod_filter: Fix AddOutputFilterByType with non-content-level filters. + PR 58856. [Micha Lenk ] + + *) mod_watchdog: Fix semaphore leak over restarts. [Jim Jagielski] + + *) mod_http2: regression fix on PR 59348, on graceful restart, ongoing + streams are finished normally before the final GOAWAY is sent. + [Stefan Eissing, ] + + *) mod_proxy: Allow the per-request environment variable "no-proxy" to + be used as an alternative to ProxyPass /path !. This is primarily + to set exceptions for ProxyPass specified in context. + Use SetEnvIf, not SetEnv. PR 60458. [Eric Covener] + + *) mod_http2: fixes PR60599, sending proper response for conditional requests + answered by mod_cache. [Jeff Wheelhouse, Stefan Eissing] + + *) mod_http2: rework of stream resource cleanup to avoid a crash in a close + of a lingering connection. Prohibit special file bucket beaming for + shared buckets. Files sent in stream output now use the stream pool + as read buffer, reducing memory footprint of connections. + [Yann Ylavic, Stefan Eissing] + + *) mod_proxy_fcgi, mod_fcgid: Fix crashes in ap_fcgi_encoded_env_len() when + modules add empty environment variables to the request. PR 60275. + [] + + *) mod_http2: fix for possible page fault when stream is resumed during + session shutdown. [sidney-j-r-m (github)] + + *) mod_http2: fix for h2 session ignoring new responses while already + open streams continue to have data available. [Stefan Eissing] + + *) mod_http2: adding support for MergeTrailers directive. [Stefan Eissing] + + *) mod_http2: limiting DATA frame sizes by TLS record sizes in use on the + connection. Flushing outgoing frames earlier. [Stefan Eissing] + + *) mod_http2: cleanup beamer registry on server reload. PR 60510. + [Pavel Mateja , Stefan Eissing] + + *) mod_proxy_{ajp,fcgi}: Fix a possible crash when reusing an established + backend connection, happening with LogLevel trace2 or higher configured, + or at any log level with compilers not detected as C99 compliant (e.g. + MSVC on Windows). [Yann Ylavic] + + *) mod_ext_filter: Don't interfere with "error buckets" issued by other + modules. PR 60375. [Eric Covener, Lubos Uhliarik] + + *) mod_http2: fixes https://github.com/icing/mod_h2/issues/126 e.g. beam + bucket lifetime handling when data is sent over temporary pools. + [Stefan Eissing] + +Changes with Apache 2.4.25 + + *) Fix some build issues related to various modules. + [Rainer Jung] + +Changes with Apache 2.4.24 (not released) + + *) SECURITY: CVE-2016-8740 (cve.mitre.org) + mod_http2: Mitigate DoS memory exhaustion via endless + CONTINUATION frames. + [Naveen Tiwari and CDF/SEFCOM at Arizona State + University, Stefan Eissing] + + *) SECURITY: CVE-2016-2161 (cve.mitre.org) + mod_auth_digest: Prevent segfaults during client entry allocation when + the shared memory space is exhausted. + [Maksim Malyutin , Eric Covener, Jacob Champion] + + *) SECURITY: CVE-2016-0736 (cve.mitre.org) + mod_session_crypto: Authenticate the session data/cookie with a + MAC (SipHash) to prevent deciphering or tampering with a padding + oracle attack. [Yann Ylavic, Colm MacCarthaigh] + + *) SECURITY: CVE-2016-8743 (cve.mitre.org) + Enforce HTTP request grammar corresponding to RFC7230 for request lines + and request headers, to prevent response splitting and cache pollution by + malicious clients or downstream proxies. [William Rowe, Stefan Fritsch] + + *) Validate HTTP response header grammar defined by RFC7230, resulting + in a 500 error in the event that invalid response header contents are + detected when serving the response, to avoid response splitting and cache + pollution by malicious clients, upstream servers or faulty modules. + [Stefan Fritsch, Eric Covener, Yann Ylavic] + + *) core: Mitigate [f]cgi CVE-2016-5387 "httpoxy" issues. + [Dominic Scheirlinck , Yann Ylavic] + + *) mod_rewrite: Limit runaway memory use by short circuiting some kinds of + looping RewriteRules when the local path significantly exceeds + LimitRequestLine. PR 60478. [Jeff Wheelhouse ] + + *) mod_ratelimit: Allow for initial "burst" amount at full speed before + throttling: PR 60145 [Andy Valencia , + Jim Jagielski] + + *) mod_socache_memcache: Provide memcache stats to mod_status. + [Jim Jagielski] + + *) http_filters: Fix potential looping in new check_headers() due to new + pattern of ap_die() from http header filter. Explicitly clear the + previous headers and body. + + *) core: Drop Content-Length header and message-body from HTTP 204 responses. + PR 51350 [Luca Toscano] + + *) mod_proxy: Honor a server scoped ProxyPass exception when ProxyPass is + configured in , like in 2.2. PR 60458. + [Eric Covener] + + *) mod_lua: Fix default value of LuaInherit directive. It should be + 'parent-first' instead of 'none', as per documentation. PR 60419 + [Christophe Jaillet] + + *) core: New directive HttpProtocolOptions to control httpd enforcement + of various RFC7230 requirements. [Stefan Fritsch, William Rowe] + + *) core: Permit unencoded ';' characters to appear in proxy requests and + Location: response headers. Corresponds to modern browser behavior. + [William Rowe] + + *) core: ap_rgetline_core now pulls from r->proto_input_filters. + + *) core: Correctly parse an IPv6 literal host specification in an absolute + URL in the request line. [Stefan Fritsch] + + *) core: New directive RegisterHttpMethod for registering non-standard + HTTP methods. [Stefan Fritsch] + + *) mod_socache_memcache: Pass expiration time through to memcached. + [Faidon Liambotis , Joe Orton] + + *) mod_cache: Use the actual URI path and query-string for identifying the + cached entity (key), such that rewrites are taken into account when + running afterwards (CacheQuickHandler off). PR 21935. [Yann Ylavic] + + *) mod_http2: new directive 'H2EarlyHints' to enable sending of HTTP status + 103 interim responses. Disabled by default. [Stefan Eissing] + + *) mod_ssl: Fix quick renegotiation (OptRenegotiaton) with no intermediate + in the client certificate chain. PR 55786. [Yann Ylavic] + + *) event: Allow to use the whole allocated scoreboard (up to ServerLimit + slots) to avoid scoreboard full errors when some processes are finishing + gracefully. Also, make gracefully finishing processes close all + keep-alive connections. PR 53555. [Stefan Fritsch] + + *) mpm_event: Don't take over scoreboard slots from gracefully finishing + threads. [Stefan Fritsch] + + *) mpm_event: Free memory earlier when shutting down processes. + [Stefan Fritsch] + + *) mod_status: Display the process slot number in the async connection + overview. [Stefan Fritsch] + + *) mod_dir: Responses that go through "FallbackResource" might appear to + hang due to unterminated chunked encoding. PR58292. [Eric Covener] + + *) mod_dav: Fix a potential cause of unbounded memory usage or incorrect + behavior in a routine that sends 's to the output filters. + [Evgeny Kotkov] + + *) mod_http2: new directive 'H2PushResource' to enable early pushes before + processing of the main request starts. Resources are announced to the + client in Link headers on a 103 early hint response. + All responses with status code <400 are inspected for Link header and + trigger pushes accordingly. 304 still does prevent pushes. + 'H2PushResource' can mark resources as 'critical' which gives them higher + priority than the main resource. This leads to preferred scheduling for + processing and, when content is available, will send it first. 'critical' + is also recognized on Link headers. [Stefan Eissing] + + *) mod_proxy_http2: uris in Link headers are now mapped back to a suitable + local url when available. Relative uris with an absolute path are mapped + as well. This makes reverse proxy mapping available for resources + announced in this header. + With 103 interim responses being forwarded to the main client connection, + this effectively allows early pushing of resources by a reverse proxied + backend server. [Stefan Eissing] + + *) mod_proxy_http2: adding support for newly proposed 103 status code. + [Stefan Eissing] + + *) mpm_unix: Apache fails to start if previously crashed then restarted with + the same PID (e.g. in container). PR 60261. + [Val , Yann Ylavic] + + *) mod_http2: unannounced and multiple interim responses (status code < 200) + are parsed and forwarded to client until a final response arrives. + [Stefan Eissing] + + *) mod_proxy_http2: improved robustness when main connection is closed early + by resetting all ongoing streams against the backend. + [Stefan Eissing] + + *) mod_http2: allocators from slave connections are released earlier, + resulting in less overall memory use on busy, long lived connections. + [Stefan Eissing] + + *) mod_remoteip: Pick up where we left off during a subrequest rather + than running with the modified XFF but original TCP address. + PR 49839/PR 60251 + + *) http: Respond with "408 Request Timeout" when a timeout occurs while + reading the request body. [Yann Ylavic] + + *) mod_http2: connection shutdown revisited: corrected edge cases on + shutting down ongoing streams, changed log warnings to be less noisy + when waiting on long running tasks. [Stefan Eissing] + + *) mod_http2: changed all AP_DEBUG_ASSERT to ap_assert to have them + available also in normal deployments. [Stefan Eissing] + + *) mod_http2/mod_proxy_http2: 100-continue handling now properly implemented + up to the backend. Reused HTTP/2 proxy connections with more than a second + not used will block request bodies until a PING answer is received. + Requests headers are not delayed by this, since they are repeatable in + case of failure. This greatly increases robustness, especially with + busy server and/or low keepalive connections. [Stefan Eissing] + + *) mod_proxy_http2: fixed duplicate symbols with mod_http2. + [Stefan Eissing] + + *) mod_http2: rewrite of how responses and trailers are transferred between + master and slave connection. Reduction of internal states for tasks + and streams, stability. Heuristic id generation for slave connections + to better keep promise of connection ids unique at given point int time. + Fix for mod_cgid interop in high load situtations. + Fix for handling of incoming trailers when no request body is sent. + [Stefan Eissing] + + *) mod_http2: fix suspended handling for streams. Output could become + blocked in rare cases. [Stefan Eissing] + + *) mpm_winnt: Prevent a denial of service when the 'data' AcceptFilter is in + use by replacing it with the 'connect' filter. PR 59970. [Jacob Champion] + + *) mod_cgid: Resolve a case where a short CGI response causes a subsequent + CGI to be killed prematurely, resulting in a truncated subsequent + response. [Eric Covener] + + *) mod_proxy_hcheck: Set health check URI and expression correctly for health + check worker. PR 60038 [zdeno ] + + *) mod_http2: if configured with nghttp2 1.14.0 and onward, invalid request + headers will immediately reset the stream with a PROTOCOL error. Feature + logged by module on startup as 'INVHD' in info message. + [Stefan Eissing] + + *) mod_http2: fixed handling of stream buffers during shutdown. + [Stefan Eissing] + + *) mod_reqtimeout: Fix body timeout disabling for CONNECT requests to avoid + triggering mod_proxy_connect's AH01018 once the tunnel is established. + [Yann Ylavic] + + *) ab: Set the Server Name Indication (SNI) extension on outgoing TLS + connections (unless -I is specified), according to the Host header (if + any) or the requested URL's hostname otherwise. [Yann Ylavic] + + *) mod_proxy_fcgi: avoid loops when ProxyErrorOverride is enabled + and the error documents are proxied. PR 55415. [Luca Toscano] + + *) mod_proxy_fcgi: read the whole FCGI response even when the content + has not been modified (HTTP 304) or in case of a precondition failure + (HTTP 412) to avoid subsequent bogus reads and confusing + error messages logged. [Luca Toscano] + + *) mod_http2: h2 status resource follows latest draft, see + http://www.ietf.org/id/draft-benfield-http2-debug-state-01.txt + [Stefan Eissing] + + *) mod_http2: handling graceful shutdown gracefully, e.g. handling existing + streams to the end. [Stefan Eissing] + + *) mod_proxy_{http,ajp,fcgi}: don't reuse backend connections with data + available before the request is sent. PR 57832. [Yann Ylavic] + + *) mod_proxy_balancer: Prevent redirect loops between workers within a + balancer by limiting the number of redirects to the number balancer + members. PR 59864 [Ruediger Pluem] + + *) mod_proxy: Correctly consider error response codes by the backend when + processing failonstatus. PR 59869 [Ruediger Pluem] + + *) mod_dav: Add dav_get_provider_name() function to obtain the name + of the provider from mod_dav. [Graham Leggett] + + *) mod_dav: Add support for childtags to dav_error. + [Jari Urpalainen ] + + *) mod_proxy_fcgi: Fix 2.4.23 breakage for mod_rewrite per-dir and query + string showing up in SCRIPT_FILENAME. PR59815 + + *) mod_include: Fix a potential memory misuse while evaluating expressions. + PR59844. [Eric Covener] + + *) mod_http2: new H2CopyFiles directive that changes treatment of file + handles in responses. Necessary in order to fix broken lifetime handling + in modules such as mod_wsgi. + + *) mod_http2: removing timeouts on master connection while requests are + being processed. Requests may timeout, but the master only times out when + no more requests are active. [Stefan Eissing] + + *) mod_http2: fixes connection flush when answering SETTINGS without any + stream open. [Moto Ishizawa <@summerwind>, Stefan Eissing] + +Changes with Apache 2.4.23 + + *) mod_ssl: reset client-verify state of ssl when aborting renegotiations. + [Erki Aring , Stefan Eissing] + + *) mod_sed: Fix 'x' command processing. [Christophe Jaillet] + + *) configure: Fix ./configure edge-case failures around dependencies + of mod_proxy_hcheck. [William Rowe, Ruediger Pluem, Jeff Trawick] + +Changes with Apache 2.4.22 + + *) mod_http2: fix for request abort when connections drops, introduced in + 1.5.8 + +Changes with Apache 2.4.21 + + *) ab: Use caseless matching for HTTP tokens (e.g. content-length). PR 59111. + [Yann Ylavic] + + *) mod_http2: more rigid error handling in DATA frame assembly, leading + to deterministic connection errors if assembly fails. + [Stefan Eissing, Pal Nilsen ] + + *) abs: Include OPENSSL_Applink when compiling on Windows, to resolve + failures under Visual Studio 2015 and other mismatched MSVCRT flavors. + PR59630 [Jan Ehrhardt ] + + *) mod_ssl: Add "no_crl_for_cert_ok" flag to SSLCARevocationCheck directive + to opt-in previous behaviour (2.2) with CRLs verification when checking + certificate(s) with no corresponding CRL. [Yann Ylavic] + + *) mpm_event, mpm_worker: Fix computation of MinSpareThreads' lower bound + according the number of listeners buckets. [Yann Ylavic] + + *) Add ap_cstr_casecmp[n]() - placeholder of apr_cstr_casecmp[n] functions + for case-insensitive C/POSIX-locale token comparison. + [Jim Jagielski, William Rowe, Yann Ylavic, Branko Čibej] + + *) mod_userdir: Constify and save a few bytes in the conf pool when + parsing the "UserDir" directive. [Christophe Jaillet] + + *) mod_cache: Fix (max-stale with no '=') and enforce (check + integers after '=') Cache-Control header parsing. + [Christophe Jaillet] + + *) core: Add -DDUMP_INCLUDES configtest option to show the tree + of Included configuration files. + [Jacob Champion ] + + *) mod_proxy_fcgi: Avoid passing a filename of proxy:fcgi:// as + SCRIPT_FILENAME to a FastCGI server. PR59618. + [Jacob Champion ] + + *) mod_dav: Add dav_get_provider_name() function to obtain the name + of the provider from mod_dav. + [Jari Urpalainen ] + + *) mod_proxy_http2: properly care for HTTP2 flow control of the frontend + connection is HTTP/1.1. [Patch supplied by Evgeny Kotkov] + + *) mod_http2: improved cleanup of connection/streams/tasks to always + have deterministic order regardless of event initiating it. Addresses + reported crashes due to memory read after free issues. + [Stefan Eissing] + + *) mod_ssl: Correct the interaction between SSLProxyCheckPeerCN and newer + SSLProxyCheckPeerName directives since release 2.4.5, such that disabling + either disables both, and that enabling either triggers the new, more + comprehensive SSLProxyCheckPeerName behavior. Only a single configuration + remains to enable the legacy behavior, which is to explicitly disable + SSLProxyCheckPeerName, and enable SSLProxyCheckPeerCN. [William Rowe] + + *) mod_include: add the + statements. [Christophe Jaillet] + + *) split-logfile: Fix perl error: 'Can't use string ("example.org:80") + as a symbol ref while "strict refs"'. PR 56329. + [Holger Mauermann ] + + *) mod_proxy: Prevent ProxyPassReverse from doing a substitution when + the URL parameter interpolates to an empty string. PR 56603. + [] + + *) core: Fix -D[efined] or [d] variables lifetime across restarts. + PR 57328. [Armin Abfalterer , Yann Ylavic]. + + *) mod_proxy: Preserve original request headers even if they differ + from the ones to be forwarded to the backend. PR 45387. + [Yann Ylavic] + + *) mod_ssl: dump SSL IO/state for the write side of the connection(s), + like reads (level TRACE4). [Yann Ylavic] + + *) mod_proxy_fcgi: Ignore body data from backend for 304 responses. PR 57198. + [Jan Kaluza] + + *) mod_ssl: Do not crash when looking up SSL related variables during + expression evaluation on non SSL connections. PR 57070 [Ruediger Pluem] + + *) mod_proxy_ajp: Fix handling of the default port (8009) in the + ProxyPass and configurations. PR 57259. [Yann Ylavic] + + *) mpm_event: Avoid a possible use after free when notifying the end of + connection during lingering close. PR 57268. [Eric Covener, Yann Ylavic] + + *) mod_ssl: Fix recognition of OCSP stapling responses that are encoded + improperly or too large. [Jeff Trawick] + + *) core: Add ap_log_data(), ap_log_rdata(), etc. for logging buffers. + [Jeff Trawick] + + *) mod_proxy_fcgi, mod_authnz_fcgi: stop reading the response and issue an + error when parsing or forwarding the response fails. [Yann Ylavic] + + *) mod_ssl: Fix a memory leak in case of graceful restarts with OpenSSL >= 0.9.8e + PR 53435 [tadanori , Sebastian Wiedenroth ] + + *) mod_proxy_connect: Don't issue AH02447 on sockets hangups, let the read + determine whether it is a normal close or a real error. PR 57168. [Yann + Ylavic] + + *) mod_proxy_wstunnel: abort backend connection on polling error to avoid + further processing. [Yann Ylavic] + + *) core: Support custom ErrorDocuments for HTTP 501 and 414 status codes. + PR 57167 [Edward Lu ] + + *) mod_proxy_connect: Fix ProxyRemote to https:// backends on EBCDIC + systems. PR 57092 [Edward Lu ] + + *) mod_cache: Avoid a 304 response to an unconditional requst when an AH00752 + CacheLock error occurs during cache revalidation. [Eric Covener] + + *) mod_ssl: Move OCSP stapling information from a per-certificate store to + a per-server hash. PR 54357, PR 56919. [Alex Bligh , + Yann Ylavic, Kaspar Brand] + + *) mod_cache_socache: Change average object size hint from 32 bytes to + 2048 bytes. [Rainer Jung] + + *) mod_cache_socache: Add cache status to server-status. [Rainer Jung] + + *) event: Fix worker-listener deadlock in graceful restart. + PR 56960. + + *) Concat strings at compile time when possible. PR 53741. + + *) mod_substitute: Restrict configuration in .htaccess to + FileInfo as documented. [Rainer Jung] + + *) mod_substitute: Make maximum line length configurable. [Rainer Jung] + + *) mod_substitute: Fix line length limitation in case of regexp plus flatten. + [Rainer Jung] + + *) mod_proxy: Truncated character worker names are no longer fatal + errors. PR53218. [Jim Jagielski] + + *) mod_dav: Set r->status_line in dav_error_response. PR 55426. + + *) mod_proxy_http, mod_cache: Avoid (unlikely) accesses to freed memory. + [Yann Ylavic, Christophe Jaillet] + + *) http_protocol: fix logic in ap_method_list_(add|remove) in order: + - to correctly reset bits + - not to modify the 'method_mask' bitfield unnecessarily + [Christophe Jaillet] + + *) mod_slotmem_shm: Increase log level for some originally debug messages. + [Jim Jagielski] + + *) mod_ldap: In 2.4.10, some LDAP searches or comparisons might be done with + the wrong credentials when a backend connection is reused. + [Eric Covener] + + *) mod_macro: Add missing APLOGNO for some Warning log messages. + [Christophe Jaillet] + + *) mod_cache: Avoid sending 304 responses during failed revalidations + PR56881. [Eric Covener] + + *) mod_status: Honor client IP address using mod_remoteip. PR 55886. + [Jim Jagielski] + + *) cmake-based build for Windows: Fix incompatibility with cmake 2.8.12 + and later. PR 56615. [Chuck Liu , Jeff Trawick] + + *) mod_ratelimit: Drop severity of AH01455 and AH01457 (ap_pass_brigade + failed) messages from ERROR to TRACE1. Other filters do not bother + re-reporting failures from lower level filters. PR56832. [Eric Covener] + + *) core: Avoid useless warning message when parsing a section guarded by + if $(foo) is used within the section. + PR 56503 [Christophe Jaillet] + + *) mod_proxy_fcgi: Fix faulty logging of large amounts of stderr from the + application. PR 56858. [Manuel Mausz ] + + *) mod_proxy_http: Proxy responses with error status and + "ProxyErrorOverride On" hang until proxy timeout. + PR53420 [Rainer Jung] + + *) mod_log_config: Allow three character log formats to be registered. For + backwards compatibility, the first character of a three-character format + must be the '^' (caret) character. [Eric Covener] + + *) mod_lua: Don't quote Expires and Path values. PR 56734. + [Keith Mashinter, ] + + *) mod_authz_core: Allow 'es to be seen from auth + stanzas under virtual hosts. PR 56870. [Eric Covener] + +Changes with Apache 2.4.10 + + *) SECURITY: CVE-2014-0117 (cve.mitre.org) + mod_proxy: Fix crash in Connection header handling which allowed a denial + of service attack against a reverse proxy with a threaded MPM. + [Ben Reser] + + *) SECURITY: CVE-2014-3523 (cve.mitre.org) + Fix a memory consumption denial of service in the WinNT MPM, used in all + Windows installations. Workaround: AcceptFilter {none|connect} + [Jeff Trawick] + + *) SECURITY: CVE-2014-0226 (cve.mitre.org) + Fix a race condition in scoreboard handling, which could lead to + a heap buffer overflow. [Joe Orton, Eric Covener] + + *) SECURITY: CVE-2014-0118 (cve.mitre.org) + mod_deflate: The DEFLATE input filter (inflates request bodies) now + limits the length and compression ratio of inflated request bodies to + avoid denial of service via highly compressed bodies. See directives + DeflateInflateLimitRequestBody, DeflateInflateRatioLimit, + and DeflateInflateRatioBurst. [Yann Ylavic, Eric Covener] + + *) SECURITY: CVE-2014-0231 (cve.mitre.org) + mod_cgid: Fix a denial of service against CGI scripts that do + not consume stdin that could lead to lingering HTTPD child processes + filling up the scoreboard and eventually hanging the server. By + default, the client I/O timeout (Timeout directive) now applies to + communication with scripts. The CGIDScriptTimeout directive can be + used to set a different timeout for communication with scripts. + [Rainer Jung, Eric Covener, Yann Ylavic] + + *) mod_ssl: Extend the scope of SSLSessionCacheTimeout to sessions + resumed by TLS session resumption (RFC 5077). [Rainer Jung] + + *) mod_deflate: Don't fail when flushing inflated data to the user-agent + and that coincides with the end of stream ("Zlib error flushing inflate + buffer"). PR 56196. [Christoph Fausak ] + + *) mod_proxy_ajp: Forward local IP address as a custom request attribute + like we already do for the remote port. [Rainer Jung] + + *) core: Include any error notes set by modules in the canned error + response for 403 errors. [Jeff Trawick] + + *) mod_ssl: Set an error note for requests rejected due to + SSLStrictSNIVHostCheck. [Jeff Trawick] + + *) mod_ssl: Fix issue with redirects to error documents when handling + SNI errors. [Jeff Trawick] + + *) mod_ssl: Fix tmp DH parameter leak, adjust selection to prefer + larger keys and support up to 8192-bit keys. [Ruediger Pluem, + Joe Orton] + + *) mod_dav: Fix improper encoding in PROPFIND responses. PR 56480. + [Ben Reser] + + *) WinNT MPM: Improve error handling for termination events in child. + [Jeff Trawick] + + *) mod_proxy: When ping/pong is configured for a worker, don't send or + forward "100 Continue" (interim) response to the client if it does + not expect one. [Yann Ylavic] + + *) mod_ldap: Be more conservative with the last-used time for + LDAPConnectionPoolTTL. PR54587 [Eric Covener] + + *) mod_ldap: LDAP connections used for authn were not respecting + LDAPConnectionPoolTTL. PR54587 [Eric Covener] + + *) mod_proxy_fcgi: Fix occasional high CPU when handling request bodies. + [Jeff Trawick] + + *) event MPM: Fix possible crashes (third-party modules accessing c->sbh) + or occasional missed mod_status updates under load. PR 56639. + [Edward Lu ] + + *) mod_authnz_ldap: Support primitive LDAP servers do not accept + filters, such as "SDBM-backed LDAP" on z/OS, by allowing a special + filter "none" to be specified in AuthLDAPURL. [Eric Covener] + + *) mod_deflate: Fix inflation of files larger than 4GB. PR 56062. + [Lukas Bezdicka ] + + *) mod_deflate: Handle Zlib header and validation bytes received in multiple + chunks. PR 46146. [Yann Ylavic] + + *) mod_proxy: Allow reverse-proxy to be set via explicit handler. + [ryo takatsuki ] + + *) ab: support custom HTTP method with -m argument. PR 56604. + [Roman Jurkov ] + + *) mod_proxy_balancer: Correctly encode user provided data in management + interface. PR 56532 [Maksymilian, ] + + *) mod_proxy: Don't limit the size of the connectable Unix Domain Socket + paths. [Graham Dumpleton, Christophe Jaillet, Yann Ylavic] + + *) mod_proxy_fcgi: Support iobuffersize parameter. [Jeff Trawick] + + *) event: Send the SSL close notify alert when the KeepAliveTimeout + expires. PR54998. [Yann Ylavic] + + *) mod_ssl: Ensure that the SSL close notify alert is flushed to the client. + PR54998. [Tim Kosse , Yann Ylavic] + + *) mod_proxy: Shutdown (eg. SSL close notify) the backend connection before + closing. [Yann Ylavic] + + *) mod_auth_form: Add a debug message when the fields on a form are not + recognised. [Graham Leggett] + + *) mod_cache: Preserve non-cacheable headers forwarded from an origin 304 + response. PR 55547. [Yann Ylavic] + + *) mod_proxy_wstunnel: Fix the use of SSL connections with the "wss:" + scheme. PR55320. [Alex Liu ] + + *) mod_socache_shmcb: Correct counting of expirations for status display. + Expirations happening during retrieval were not counted. [Rainer Jung] + + *) mod_cache: Retry unconditional request with the full URL (including the + query-string) when the origin server's 304 response does not match the + conditions used to revalidate the stale entry. [Yann Ylavic]. + + *) mod_alias: Stop setting CONTEXT_PREFIX and CONTEXT_DOCUMENT environment + variables as a result of AliasMatch. [Eric Covener] + + *) mod_cache: Don't add cached/revalidated entity headers to a 304 response. + PR 55547. [Yann Ylavic] + + *) mod_proxy_scgi: Support Unix sockets. ap_proxy_port_of_scheme(): + Support default SCGI port (4000). [Jeff Trawick] + + *) mod_cache: Fix AH00784 errors on Windows when the the CacheLock directive + is enabled. [Eric Covener] + + *) mod_expires: don't add Expires header to error responses (4xx/5xx), + be they generated or forwarded. PR 55669. [Yann Ylavic] + + *) mod_proxy_fcgi: Don't segfault when failing to connect to the backend. + (regression in 2.4.9 release) [Jeff Trawick] + + *) mod_authn_socache: Fix crash at startup in certain configurations. + PR 56371. (regression in 2.4.7) [Jan Kaluza] + + *) mod_ssl: restore argument structure for "exec"-type SSLPassPhraseDialog + programs to the form used in releases up to 2.4.7, and emulate + a backwards-compatible behavior for existing setups. [Kaspar Brand] + + *) mod_ssl: Add SSLOCSPUseRequestNonce directive to control whether or not + OCSP requests should use a nonce to be checked against the responder's + one. PR 56233. [Yann Ylavic, Kaspar Brand] + + *) mod_ssl: "SSLEngine off" will now override a Listen-based default + and does disable mod_ssl for the vhost. [Joe Orton] + + *) mod_lua: Enforce the max post size allowed via r:parsebody() + [Daniel Gruno] + + *) mod_lua: Use binary comparison to find boundaries for multipart + objects, as to not terminate our search prematurely when hitting + a NULL byte. [Daniel Gruno] + + *) mod_ssl: add workaround for SSLCertificateFile when using OpenSSL + versions before 0.9.8h and not specifying an SSLCertificateChainFile + (regression introduced with 2.4.8). PR 56410. [Kaspar Brand] + + *) mod_ssl: bring SNI behavior into better conformance with RFC 6066: + no longer send warning-level unrecognized_name(112) alerts, + and limit startup warnings to cases where an OpenSSL version + without TLS extension support is used. PR 56241. [Kaspar Brand] + + *) mod_proxy_html: Avoid some possible memory access violation in case of + specially crafted files, when the ProxyHTMLMeta directive is turned on. + Follow up of PR 56287 [Christophe Jaillet] + + *) mod_auth_form: Make sure the optional functions are loaded even when + the AuthFormProvider isn't specified. [Graham Leggett] + + *) mod_ssl: avoid processing bogus SSLCertificateKeyFile values + (and logging garbled file names). PR 56306. [Kaspar Brand] + + *) mod_ssl: fix merging of global and vhost-level settings with the + SSLCertificateFile, SSLCertificateKeyFile, and SSLOpenSSLConfCmd + directives. PR 56353. [Kaspar Brand] + + *) mod_headers: Allow the "value" parameter of Header and RequestHeader to + contain an ap_expr expression if prefixed with "expr=". [Eric Covener] + + *) rotatelogs: Avoid creation of zombie processes when -p is used on + Unix platforms. [Joe Orton] + + *) mod_authnz_fcgi: New module to enable FastCGI authorizer + applications to authenticate and/or authorize clients. + [Jeff Trawick] + + *) mod_proxy: Do not try to parse the regular expressions passed by + ProxyPassMatch as URL as they do not follow their syntax. + PR 56074. [Ruediger Pluem] + + *) mod_reqtimeout: Resolve unexpected timeouts on keepalive requests + under the Event MPM. PR56216. [Frank Meier ] + + *) mod_proxy_fcgi: Fix sending of response without some HTTP headers + that might be set by filters. PR 55558. [Jim Riggs ] + + *) mod_proxy_html: Do not delete the wrong data from HTML code when a + "http-equiv" meta tag specifies a Content-Type behind any other + "http-equiv" meta tag. PR 56287 [Micha Lenk ] + + *) mod_proxy: Don't reuse a SSL backend connection whose requested SNI + differs. PR 55782. [Yann Ylavic] + + *) Add suspend_connection and resume_connection hooks to notify modules + when the thread/connection relationship changes. (Should be implemented + for any third-party async MPMs.) [Jeff Trawick] + + *) mod_proxy_wstunnel: Don't issue AH02447 and log a 500 on routine + hangups from websockets origin servers. PR 56299 + [Yann Ylavic, Edward Lu , Eric Covener] + + *) mod_proxy_wstunnel: Don't pool backend websockets connections, + because we need to handshake every time. PR 55890. + [Eric Covener] + + *) mod_lua: Redesign how request record table access behaves, + in order to utilize the request record from within these tables. + [Daniel Gruno] + + *) mod_lua: Add r:wspeek for peeking at WebSocket frames. [Daniel Gruno] + + *) mod_lua: Log an error when the initial parsing of a Lua file fails. + [Daniel Gruno, Felipe Daragon ] + + *) mod_lua: Reformat and escape script error output. + [Daniel Gruno, Felipe Daragon ] + + *) mod_lua: URL-escape cookie keys/values to prevent tainted cookie data + from causing response splitting. + [Daniel Gruno, Felipe Daragon ] + + *) mod_lua: Disallow newlines in table values inside the request_rec, + to prevent HTTP Response Splitting via tainted headers. + [Daniel Gruno, Felipe Daragon ] + + *) mod_lua: Remove the non-working early/late arguments for + LuaHookCheckUserID. [Daniel Gruno] + + *) mod_lua: Change IVM storage to use shm [Daniel Gruno] + + *) mod_lua: More verbose error logging when a handler function cannot be + found. [Daniel Gruno] + +Changes with Apache 2.4.9 + + *) mod_ssl: Work around a bug in some older versions of OpenSSL that + would cause a crash in SSL_get_certificate for servers where the + certificate hadn't been sent. [Stephen Henson] + + *) mod_lua: Add a fixups hook that checks if the original request is intended + for LuaMapHandler. This fixes a bug where FallbackResource invalidates the + LuaMapHandler directive in certain cases by changing the URI before the map + handler code executes [Daniel Gruno, Daniel Ferradal ]. + +Changes with Apache 2.4.8 (not released) + + *) SECURITY: CVE-2014-0098 (cve.mitre.org) + Clean up cookie logging with fewer redundant string parsing passes. + Log only cookies with a value assignment. Prevents segfaults when + logging truncated cookies. + [William Rowe, Ruediger Pluem, Jim Jagielski] + + *) SECURITY: CVE-2013-6438 (cve.mitre.org) + mod_dav: Keep track of length of cdata properly when removing + leading spaces. Eliminates a potential denial of service from + specifically crafted DAV WRITE requests + [Amin Tora ] + + *) core: Support named groups and backreferences within the LocationMatch, + DirectoryMatch, FilesMatch and ProxyMatch directives. (Requires + non-ancient PCRE library) [Graham Leggett] + + *) core: draft-ietf-httpbis-p1-messaging-23 corrections regarding + TE/CL conflicts. [Yann Ylavic, Jim Jagielski] + + *) core: Detect incomplete request and response bodies, log an error and + forward it to the underlying filters. PR 55475 [Yann Ylavic] + + *) mod_dir: Add DirectoryCheckHandler to allow a 2.2-like behavior, skipping + execution when a handler is already set. PR53929. [Eric Covener] + + *) mod_ssl: Do not perform SNI / Host header comparison in case of a + forward proxy request. [Ruediger Pluem] + + *) mod_ssl: Remove the hardcoded algorithm-type dependency for the + SSLCertificateFile and SSLCertificateKeyFile directives, to enable + future algorithm agility, and deprecate the SSLCertificateChainFile + directive (obsoleted by SSLCertificateFile). [Kaspar Brand] + + *) mod_rewrite: Add RewriteOptions InheritDown, InheritDownBefore, + and IgnoreInherit to allow RewriteRules to be pushed from parent scopes + to child scopes without explicitly configuring each child scope. + PR56153. [Edward Lu ] + + *) prefork: Fix long delays when doing a graceful restart. + PR 54852 [Jim Jagielski, Arkadiusz Miskiewicz ] + + *) FreeBSD: Disable IPv4-mapped listening sockets by default for versions + 5+ instead of just for FreeBSD 5. PR 53824. [Jeff Trawick] + + *) mod_proxy_wstunnel: Avoid busy loop on client errors, drop message + IDs 02445, 02446, and 02448 to TRACE1 from DEBUG. PR 56145. + [Joffroy Christen , Eric Covener] + + *) mod_remoteip: Correct the trusted proxy match test. PR 54651. + [Yoshinori Ehara , Eugene L ] + + *) mod_proxy_fcgi: Fix error message when an unexpected protocol version + number is received from the application. PR 56110. [Jeff Trawick] + + *) mod_remoteip: Use the correct IP addresses to populate the proxy_ips field. + PR 55972. [Mike Rumph] + + *) mod_lua: Update r:setcookie() to accept a table of options and add domain, + path and httponly to the list of options available to set. + PR 56128 [Edward Lu , Daniel Gruno] + [... 3490 lines stripped ...]