Apache Changelog

What's new in Apache 2.4.34

Jul 30, 2018
  • SECURITY: CVE-2018-8011 (cve.mitre.org) mod_md: DoS via Coredumps on specially crafted requests
  • SECURITY: CVE-2018-1333 (cve.mitre.org) mod_http2: DoS for HTTP/2 connections by specially crafted requests
  • Introduce zh-cn and zh-tw (simplified and traditional Chinese) error document translations. [CodeingBoy, popcorner]
  • event: avoid possible race conditions with modules on the child pool. [Stefan Fritsch]
  • mod_proxy: Fix a corner case where the ProxyPassReverseCookieDomain or ProxyPassReverseCookiePath directive could fail to update correctly 'domain=' or 'path=' in the 'Set-Cookie' header. PR 61560. [Christophe Jaillet]
  • mod_ratelimit: fix behavior when proxing content. PR 62362. [Luca Toscano, Yann Ylavic]
  • core: Re-allow '_' (underscore) in hostnames. [Eric Covener]
  • mod_authz_core: If several parameters are used in a AuthzProviderAlias directive, if these parameters are not enclosed in quotation mark, only the first one is handled. The other ones are silently ignored. Add a message to warn about such a spurious configuration. PR 62469 [Hank Ibell , Christophe Jaillet]
  • mod_md: improvements and bugfixes - MDNotifyCmd now takes additional parameter that are passed on to the called command. - ACME challenges have better checks for interference with other modules - ACME challenges are only handled for domains managed by the module, allowing other ACME clients to operate for other domains in the server. - better libressl integration
  • mod_proxy_wstunnel: Add default schema ports for 'ws' and 'wss'. PR 62480. [Lubos Uhliarik }
  • logging: Some early logging-related startup messages could be lost when using syslog for the global ErrorLog. [Eric Covener]
  • mod_cache: Handle case of an invalid Expires header value RFC compliant like the case of an Expires time in the past: allow to overwrite the non-caching decision using CacheStoreExpired and respect Cache-Control "max-age" and "s-maxage". [Rainer Jung]
  • mod_xml2enc: Fix forwarding of error metadata/responses. PR 62180. [Micha Lenk , Yann Ylavic]
  • mod_proxy_http: Fix response header thrown away after the previous one was considered too large and truncated. PR 62196. [Yann Ylavic]
  • core: Add and handle AP_GETLINE_NOSPC_EOL flag for ap_getline() family of functions to consume the end of line when the buffer is exhausted. PR 62198. [Yann Ylavic]
  • mod_proxy_http: Add new worker parameter 'responsefieldsize' to allow maximum HTTP response header size to be increased past 8192 bytes. PR 62199. [Hank Ibell ]
  • mod_ssl: Extend SSLOCSPEnable with mode 'leaf' that only checks the leaf of a certificate chain. PR62112. [Ricardo Martin Camarero ]
  • http: Fix small memory leak per request when handling persistent connections. [Ruediger Pluem, Joe Orton]
  • mod_proxy_html: Fix variable interpolation and memory allocation failure in ProxyHTMLURLMap. [Ewald Dieterich ]
  • mod_remoteip: Fix RemoteIP{Trusted,Internal}ProxyList loading broken by 2.4.30. PR 62220. [Chritophe Jaillet, Yann Ylavic]
  • mod_remoteip: When overriding the useragent address from X-Forwarded-For, zero out what had been initialized as the connection-level port. PR59931. [Hank Ibell ]
  • core: In ONE_PROCESS/debug mode, cleanup everything when exiting. [Yann Ylavic]
  • mod_proxy_balancer: Add hot spare member type and corresponding flag (R). Hot spare members are used as drop-in replacements for unusable workers in the same load balancer set. This differs from hot standbys which are only used when all workers in a set are unusable. PR 61140. [Jim Riggs]
  • suexec: Add --enable-suexec-capabilites support on Linux, to use setuid/setgid capability bits rather than a setuid root binary. [Joe Orton]
  • suexec: Add support for logging to syslog as an alternative to logging to a file; use --without-suexec-logfile --with-suexec-syslog. [Joe Orton]
  • mod_ssl: Restore 2.4.29 behaviour in SSL vhost merging/enabling which broke some rare but previously-working configs. [Joe Orton]
  • core, log: improve sanity checks for the ErrorLog's syslog config, and explicitly allow only lowercase 'syslog' settings. PR 62102 [Luca Toscano, Jim Riggs, Christophe Jaillet]
  • mod_http2: accurate reporting of h2 data input/output per request via mod_logio. Fixes an issue where output sizes where counted n-times on reused slave connections. [Stefan Eissing] See github issue: https://github.com/icing/mod_h2/issues/158
  • mod_http2: Fix unnecessary timeout waits in case streams are aborted. [Stefan Eissing]
  • mod_http2: restoring the v1.10.16 keepalive timeout behaviour of mod_http2. [Stefan Eissing]
  • mod_proxy: Do not restrict the maximum pool size for backend connections any longer by the maximum number of threads per process and use a better default if mod_http2 is loaded. [Yann Ylavic, Ruediger Pluem, Stefan Eissing, Gregg Smith]
  • mod_slotmem_shm: Add generation number to shm filename to fix races with graceful restarts. PRs 62044 and 62308. [Jim Jagielski, Yann Ylavic]
  • core: Preserve the original HTTP request method in the '%

New in Apache 2.4.33 (Apr 5, 2018)

  • core: Fix request timeout logging and possible crash for error_log hooks. [Yann Ylavic]
  • mod_slomem_shm: Fix failure to create balancers's slotmems in Windows MPM, where children processes need to attach them instead since they are owned by the parent process already. [Yann Ylavic]
  • ab: try all destination socket addresses returned by apr_sockaddr_info_get instead of failing on first one when not available. Needed for instance if localhost resolves to both ::1 and 127.0.0.1 e.g. if both are in /etc/hosts. [Jan Kaluza]
  • ab: Use only one connection to determine working destination socket address. [Jan Kaluza]
  • ab: LibreSSL doesn't have or require Windows applink.c. [Gregg L. Smith]
  • htpasswd/htdigest: Disable support for bcrypt on EBCDIC platforms. apr-util's bcrypt implementation doesn't tolerate EBCDIC. [Eric Covener]
  • htpasswd/htdbm: report the right limit when get_password() overflows. [Yann Ylavic]
  • htpasswd: Don't fail in -v mode if password file is unwritable. PR 61631. [Joe Orton]
  • htpasswd: don't point to (unused) stack memory on output to make static analysers happy. PR 60634. [Yann Ylavic, reported by shqking and Zhenwei Zou]

New in Apache 2.4.32 (Apr 5, 2018)

  • mod_access_compat: Fail if a comment is found in an Allow or Deny directive. [Jan Kaluza]
  • mod_authz_host: Ignore comments after "Require host", logging a warning, or logging an error if the line is otherwise empty. [Jan Kaluza, Joe Orton]
  • rotatelogs: Fix expansion of %Z in localtime (-l) mode, and fix Y2K38 bug. [Joe Orton]
  • mod_ssl: Support SSL DN raw variable extraction without conversion to UTF-8, using _RAW suffix on variable names. [Joe Orton]
  • ab: Fix https:// connection failures (regression in 2.4.30); fix crash generating CSV output for large -n. [Joe Orton, Jan Kaluza]

New in Apache 2.4.31 (Apr 5, 2018)

  • mod_proxy_fcgi: Add the support for mod_proxy's flushpackets and flushwait parameters. [Luca Toscano, Ruediger Pluem, Yann Ylavic]
  • mod_ldap: Avoid possible crashes, hangs, and busy loops due to improper merging of the cache lock in vhost config. PR 43164 [Eric Covener]
  • mpm_event: Do lingering close in worker(s). [Yann Ylavic]
  • mpm_queue: Put fdqueue code in common for MPMs event and worker. [Yann Ylavic]

New in Apache 2.4.28 (Oct 12, 2017)

  • SECURITY: CVE-2017-9798 (cve.mitre.org) Corrupted or freed memory access. must now be used in the main configuration file (httpd.conf) to register HTTP methods before the .htaccess files. [Yann Ylavic]
  • event: Avoid possible blocking in the listener thread when shutting down connections. PR 60956. [Yann Ylavic]
  • mod_speling: Don't embed referer data in a link in error page. PR 38923 [Nick Kew]
  • htdigest: prevent a buffer overflow when a string exceeds the allowed max length in a password file. [Luca Toscano, Hanno Böck ]
  • mod_proxy: loadfactor parameter can now be a decimal number (eg: 1.25). [Jim Jagielski]
  • mod_proxy_wstunnel: Allow upgrade to any protocol dynamically. PR 61142.
  • mod_watchdog/mod_proxy_hcheck: Time intervals can now be spefified down to the millisecond. Supports 'mi' (minute), 'ms' (millisecond), 's' (second) and 'hr' (hour!) time suffixes. [Jim Jagielski]
  • mod_http2: Fix for stalling when more than 32KB are written to a suspended stream. [Stefan Eissing]
  • build: allow configuration without APR sources. [Jacob Champion]
  • mod_ssl, ab: Fix compatibility with LibreSSL. PR 61184. [Bernard Spil , Michael Schlenker , Yann Ylavic]
  • core/log: Support use of optional "tag" in syslog entries. PR 60525. [Ben Rubson , Jim Jagielski]
  • mod_proxy: Fix ProxyAddHeaders merging. [Joe Orton]
  • core: Disallow multiple Listen on the same IP:port when listener buckets are configured (ListenCoresBucketsRatio > 0), consistently with the single bucket case (default), thus avoiding the leak of the corresponding socket descriptors on graceful restart. [Yann Ylavic]
  • event: Avoid listener periodic wake ups by using the pollset wake-ability when available. PR 57399. [Yann Ylavic, Luca Toscano]
  • mod_proxy_wstunnel: Fix detection of unresponded request which could have led to spurious HTTP 502 error messages sent on upgrade connections. PR 61283. [Yann Ylavic]

New in Apache 2.4.27 (Jul 24, 2017)

  • 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 inadvertently 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]

New in Apache 2.4.26 (Jun 20, 2017)

  • 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_mime: Fix error checking for quoted pairs. [Yann Ylavic]
  • 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]
  • core: Deprecate ap_get_basic_auth_pw() and add ap_get_basic_auth_components(). [Emmanuel Dreyfus , Jacob Champion, Eric Covener]
  • 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_ssl: Consistently pass the expected bio_filter_in_ctx_t to ssl_io_filter_error(). [Yann Ylavic]
  • 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 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: 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. [Eric Covener]
  • 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]

New in Apache 2.4.25 (Dec 27, 2016)

  • Fixed some build issues related to various modules.

New in Apache 2.4.24 (Dec 27, 2016)

  • 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-5387 (cve.mitre.org) core: Mitigate [f]cgi "httpoxy" issues. [Dominic Scheirlinck , Yann Ylavic]
  • 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]
  • 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

New in Apache 2.4.23 (Jul 5, 2016)

  • mod_ssl: reset client-verify state of SSL when aborting re-negotiations.
  • mod_sed: Fix 'x' command processing.
  • configure: Fix ./configure edge-case failures around dependencies of mod_proxy_hcheck.

New in Apache 2.4.22 (Jul 5, 2016)

  • mod_http2: fix for request abort when connections drops, introduced in

New in Apache 2.4.20 (May 7, 2016)

  • core: Do not read .htaccess if AllowOverride and AllowOverrideList are "None". PR 58528.
  • mod_proxy_express: Fix possible use of DB handle after close. PR 59230.
  • mod_http2: incrementing keepalives on each request started so that logging %k gives increasing numbers per master http2 connection. New documented variables in env, usable in custom log formats: H2_PUSH, H2_PUSHED, H2_PUSHED_ON, H2_STREAM_ID and H2_STREAM_TAG.
  • mod_http2: more efficient passing of response bodies with less contention and file bucket forwarding.
  • mod_http2: fix for missing score board updates on request count, fix for memory leak on slave connection reuse.

New in Apache 2.4.18 (Dec 14, 2015)

  • mod_ssl: for all ssl_engine_vars.c lookups, fall back to master connection if conn_rec itself holds no valid SSLConnRec*. Fixes PR58666
  • mod_http2: connection level window for flow control is set to protocol maximum of 2GB-1, preventing window exhaustion when sending data on many streams with higher cumulative window size
  • Reducing write frequency unless push promises need to be flushed
  • mod_http2: required minimum version of libnghttp2 is 1.2.1
  • mod_proxy_fdpass: Fix AH01153 error when using the default configuration. In earlier version of httpd, you can explicitelly set the 'flusher' parameter to 'flush' as a workaround. (i.e. flusher=flush). Add documentation for the 'flusher' parameter when defining a proxy worker
  • mod_ssl: For the "SSLStaplingReturnResponderErrors off" case, make sure to only staple responses with certificate status "good".
  • mod_http2: new directive 'H2PushPriority' to allow priority specifications on server pushed streams according to their content-type
  • mod_http2: fixes crash on connection abort for a busy connection fixes crash on a request that did not produce any response
  • mod_http2: trailers are sent after reponse body if set in request_rec trailers_out before the end-of-request bucket is sent through the output filters.
  • mod_http2: incoming trailers (headers after request body) are properly forwarded to the processing engine.
  • mod_http2: new directive 'H2Push' to en-/disable HTTP/2 server pushes a server/virtual host. Pushes are initiated by the presence of 'Link:' headers with relation 'preload' on a response.
  • mod_http2: write performance of http2 improved for larger resources especially static files.
  • core: if the first HTTP/1.1 request on a connection goes to a server that prefers different protocols, these protocols are announced in a Upgrade header on the response, mentioning the preferred protocols
  • mod_http2: new directives 'H2TLSWarmUpSize' and 'H2TLSCoolDownSecs' to control TLS record sizes during connection lifetime
  • mod_http2: new directive 'H2ModernTLSOnly' to enforce security requirements of RFC 7540 on TLS connections
  • core: add ap_get_protocol_upgrades() to retrieve the list of protocols that a client could possibly upgrade to. Use in first request on a connection to announce protocol choices.
  • mod_http2: reworked deallocation on connection shutdown and worker abort. Separate parent pool for all workers. worker threads are joined on planned worker shutdown.
  • mod_ssl: when receiving requests for other virtual hosts than the handshake server, the SSL parameters are checked for equality. With equal configuration, requests are passed for processing. Any change will trigger the old behaviour of "421 Misdirected Request"
  • SSL now remembers the cipher suite that was used for the last handshake. This is compared against for any vhost/directory cipher specification. Detailed examination of renegotiation is only done when these do not match
  • Renegotiation is 403ed when a master connection is present. Exact reason is given additionally in a request note.
  • core: Fix scoreboard crash (SIGBUS) on hardware requiring strict 64bit alignment (SPARC64, PPC64).
  • mod_cache: Accept HT (Horizontal Tab) when parsing cache related header fields as described in RFC7230.
  • core/util_script: making REDIRECT_URL a full URL is now opt-in via new 'QualifyRedirectURL' directive
  • core: Limit to ten the number of tolerated empty lines between request and consume them before the pipelining check to avoid possible response delay when reading the next request without flushing.
  • mod_ssl: Extend expression parser registration to support ssl variables in any expression using mod_rewrite syntax "%{SSL:VARNAME}" or function syntax "ssl(VARNAME)".

New in Apache 2.4.17 (Oct 16, 2015)

  • mod_http2: added donated HTTP/2 implementation via core module. Similar configuration options to mod_ssl. [Stefan Eissing]
  • mod_proxy: don't recyle backend announced "Connection: close" connections to avoid reusing it should the close be effective after some new request is ready to be sent. [Yann Ylavic]
  • mod_substitute: Allow to configure the patterns merge order with the new SubstituteInheritBefore on|off directive. PR 57641 [Marc.Stern , Yann Ylavic, William Rowe]
  • mod_proxy: Fix ProxySourceAddress binding failure with AH00938. PR 56687. [Arne de Bruijn
  • mod_ssl: Support compilation against libssl built with OPENSSL_NO_SSL3, and change the compiled-in default for SSL[Proxy]Protocol to "all -SSLv3", in accordance with RFC 7568. PR 58349, PR 57120. [Kaspar Brand]
  • mod_ssl: append :!aNULL:!eNULL:!EXP to the cipher string settings, instead of prepending !aNULL:!eNULL:!EXP: (as was the case in 2.4.7 and later). Enables support for configuring the SUITEB* cipher strings introduced in OpenSSL 1.0.2. PR 58213. [Kaspar Brand]
  • mod_ssl: Add support for extracting the msUPN and dnsSRV forms of subjectAltName entries of type "otherName" into SSL_{CLIENT,SERVER}_SAN_OTHER_{msUPN,dnsSRV}_n environment variables. Addresses PR 58020. [Jan Pazdziora , Kaspar Brand]
  • mod_logio: Fix logging of %^FB (time to first byte) on the first request on an SSL connection. PR 58454. [Konstantin J. Chernov ]
  • mod_cache: r->err_headers_out is not merged into r->headers when mod_cache is enabled and the response is cached for the first time. [Edward Lu]
  • mod_slotmem_shm: Fix slots/SHM files names on restart for systems that can't create new (clear) slots while previous children gracefully stopping still use the old ones (e.g. Windows, OS2). mod_proxy_balancer failed to restart whenever the number of configured balancers/members changed during restart. PR 58024. [Yann Ylavic]
  • core/util_script: make REDIRECT_URL a full URL. PR 57785. [Nick Kew]
  • MPMs: Support SO_REUSEPORT to create multiple duplicated listener records for scalability. [Yingqi Lu , Jeff Trawick, Jim Jagielski, Yann Ylavic]
  • mod_proxy: Fix a race condition that caused a failed worker to be retried before the retry period is over. [Ruediger Pluem]
  • mod_autoindex: Allow autoindexes when neither mod_dir nor mod_mime are loaded. [Eric Covener]
  • mod_rewrite: Allow cookies set by mod_rewrite to contain ':' by accepting ';' as an alternate separator. PR47241. [, Eric Covener]
  • apxs: Add HTTPD_VERSION and HTTPD_MMN to the variables available with apxs -q. PR58202. [Daniel Shahaf ]
  • mod_rewrite: Avoid a crash when lacking correct DB access permissions when using RewriteMap with MapType dbd or fastdbd. [Christophe Jaillet]
  • mod_authz_dbd: Avoid a crash when lacking correct DB access permissions. PR 57868. [Jose Kahan , Yann Ylavic]
  • mod_socache_memcache: Add the 'MemcacheConnTTL' directive to control how long to keep idle connections with the memcache server(s). Change default value from 600 usec (!) to 15 sec. PR 58091 [Christophe Jaillet]
  • mod_dir: Prevent the internal identifier "httpd/unix-directory" from appearing as a Content-Type response header when requests for a directory are rewritten by mod_rewrite. [Eric Covener]

New in Apache 2.4.16 (Jul 17, 2015)

  • http: Fix LimitRequestBody checks when there is no more bytes to read. [Michael Kaufmann ]
  • mod_alias: Revert expression parser support for Alias, ScriptAlias and Redirect due to a regression (introduced in 2.4.13, not released).
  • mod_reqtimeout: Don't let pipelining checks and keep-alive times interfere with the timeouts computed for subsequent requests. PR 56729. [Eric Covener, Yann Ylavic]
  • core: Avoid a possible truncation of the faulty header included in the HTML response when LimitRequestFieldSize is reached. [Yann Ylavic]
  • mod_ldap: In some case, LDAP_NO_SUCH_ATTRIBUTE could be returned instead of an error during a compare operation. [Eric Covener]

New in Apache 2.4.15 (Jul 17, 2015)

  • mod_ext_filter, mod_charset_lite: Avoid inadvertent filtering of protocol data during read of chunked request bodies. PR 58049. [Edward Lu ]
  • mod_ldap: Stop leaking LDAP connections when 'LDAPConnectionPoolTTL 0' is configured. PR 58037. [Ted Phelps ]
  • core: Allow spaces after chunk-size for compatibility with implementations using a pre-filled buffer. [Yann Ylavic, Jeff Trawick]
  • mod_ssl: Remove deprecated SSLCertificateChainFile warning. [Yann Ylavic]

New in Apache 2.4.14 (Jul 17, 2015)

  • SECURITY: CVE-2015-3183 (cve.mitre.org) core: Fix chunk header parsing defect. Remove apr_brigade_flatten(), buffering and duplicated code from the HTTP_IN filter, parse chunks in a single pass with zero copy. Limit accepted chunk-size to 2^63-1 and be strict about chunk-ext authorized characters. [Graham Leggett, Yann Ylavic]
  • SECURITY: CVE-2015-3185 (cve.mitre.org) Replacement of ap_some_auth_required (unusable in Apache httpd 2.4) with new ap_some_authn_required and ap_force_authn hook. [Ben Reser]

New in Apache 2.4.13 (Jul 17, 2015)

  • SECURITY: CVE-2015-0253 (cve.mitre.org) core: Fix a crash with ErrorDocument 400 pointing to a local URL-path with the INCLUDES filter active, introduced in 2.4.11. PR 57531. [Yann Ylavic]
  • SECURITY: CVE-2015-0228 (cve.mitre.org) mod_lua: A maliciously crafted websockets PING after a script calls r:wsupgrade() can cause a child process crash. [Edward Lu ]
  • mod_proxy: Don't put the worker in error state for 500 or 503 errors returned by the backend unless failonstatus is configured to. PR 56925. [Yann Ylavic]
  • core: Don't lowercase the argument to SetHandler if it begins with "proxy:unix". PR 57968. [Eric Covener]
  • mod_ssl OCSP Stapling: Don't block initial handshakes while refreshing the OCSP response for a different certificate. mod_ssl has an additional global mutex, "ssl-stapling-refresh". PR 57131 (partial fix). [Jeff Trawick]
  • mod_authz_dbm: Fix crashes when "dbm-file-group" is used and authz modules were loaded in the "wrong" order. [Joe Orton]
  • mod_authn_dbd, mod_authz_dbd, mod_session_dbd, mod_rewrite: Fix lifetime of DB lookup entries independently of the selected DB engine. PR 46421. [Steven whitson , Jan Kaluza, Yann Ylavic].
  • In alignment with RFC 7525, the default recommended SSLCipherSuite and SSLProxyCipherSuite now exclude RC4 as well as MD5. Also, the default recommended SSLProtocol and SSLProxyProtocol directives now exclude SSLv3. Existing configurations must be adjusted by the administrator. [William Rowe]
  • mod_ssl: Add support for extracting subjectAltName entries of type rfc822Name and dNSName into SSL_{CLIENT,SERVER}_SAN_{Email,DNS}_n environment variables. Also addresses PR 57207. [Kaspar Brand]
  • dav_validate_request: avoid validating locks and ETags when there are no If headers providing them on a resource we aren't modifying. [Ben Reser]
  • mod_proxy_scgi: ProxySCGIInternalRedirect now allows an alternate response header to be used by the application, for when the application or framework is unable to return Location in the internal-redirect form. [Jeff Trawick]
  • core: Cleanup the request soon/even if some output filter fails to handle the EOR bucket. [Yann Ylavic]
  • mpm_event: Allow for timer events duplicates. [Jim Jagielski, Yann Ylavic]
  • mod_proxy, mod_ssl, mod_cache_socache, mod_socache_*: Support machine readable server-status produced when using the "?auto" query string. [Rainer Jung]
  • mod_status: Add more data to machine readable server-status produced when using the "?auto" query string. [Rainer Jung]
  • mod_ssl: Check for the Entropy Gathering Daemon (EGD) availability at configure time (RAND_egd), and complain if SSLRandomSeed requires using it otherwise. [Bernard Spil , Stefan Sperling, Kaspar Brand]
  • mod_ssl: make sure to consistently output SSLCertificateChainFile deprecation warnings, when encountered in a VirtualHost block. [Falco Schwarz ]
  • mod_log_config: Add "%{UNIT}T" format to output request duration in seconds, milliseconds or microseconds depending on UNIT ("s", "ms", "us"). [Ben Reser, Rainer Jung]
  • Allow FallbackResource to work when a directory is requested and there is no autoindex nor DirectoryIndex. [Jack , Eric Covener]
  • mod_proxy_wstunnel: Bypass the handler while the connection is not upgraded to WebSocket, so that other modules can possibly take over the leading HTTP requests. [Yann Ylavic]
  • mod_http: Fix incorrect If-Match handling. PR 57358 [Kunihiko Sakamoto ]
  • mod_ssl: Add a warning if protocol given in SSLProtocol or SSLProxyProtocol will override other parameters given in the same directive. This could be a missing + or - prefix. PR 52820 [Christophe Jaillet]
  • core, modules: Avoid error response/document handling by the core if some handler or input filter already did it while reading the request (causing a double response body). [Yann Ylavic]
  • mod_proxy_ajp: Fix client connection errors handling and logged status when it occurs. PR 56823. [Yann Ylavic]
  • mod_proxy: Use the correct server name for SNI in case the backend SSL connection itself is established via a proxy server. PR 57139 [Szabolcs Gyurko ]
  • mod_ssl: Fix possible crash when loading server certificate constraints. PR 57694. [Paul Spangler , Yann Ylavic]
  • build: Don't load both mod_cgi and mod_cgid in the default configuration if they're both built. [olli hauer ]
  • mod_logio: Add LogIOTrackTTFB and %^FB logformat to log the time taken to start writing response headers. [Eric Covener]
  • mod_ssl: Avoid compilation errors with LibreSSL related to the use of ENGINE_CTRL_CHIL_SET_FORKCHECK. [Stuart Henderson ]
  • mod_proxy_http: Use the "Connection: close" header for requests to backends not recycling connections (disablereuse), including the default reverse and forward proxies. [Yann Ylavic]
  • mod_proxy: Add ap_connection_reusable() for checking if a connection is reusable as of this point in processing. [Jeff Trawick]
  • mod_proxy_wstunnel: Avoid an empty response by failing with 502 (Bad Gateway) when no response is ever received from the backend. [Jan Kaluza]
  • core_filters: Restore/disable TCP_NOPUSH option after non-blocking sendfile. [Yann Ylavic]
  • mod_buffer: Forward flushed input data immediately and avoid (unlikely) access to freed memory. [Yann Ylavic, Christophe Jaillet]
  • core: Add CGIPassAuth directive to control whether HTTP authorization headers are passed to scripts as CGI variables. PR 56855. [Jeff Trawick]
  • core: Initialize scoreboard's used optional functions on graceful restarts to avoid a crash when relocation occurs. PR 57177. [Yann Ylavic]
  • mod_dav: Avoid a potential integer underflow in the lock timeout value sent back to a client. The answer to a LOCK request could be an extremly large integer if the time needed to lock the resource was longer that the requested timeout given in the LOCK request. In such a case, we now answer "Second-0". PR55420 [Christophe Jaillet]
  • mod_cgid: Within the first minute of a server start or restart, allow mod_cgid to retry connecting to its daemon process. Previously, 'No such file or directory: unable to connect to cgi daemon...' could be logged without an actual retry. PR57685. [Edward Lu ] mod_proxy: Use the original (non absolute) form of the request-line's URI for requests embedded in CONNECT payloads used to connect SSL backends via a ProxyRemote forward-proxy. PR 55892. [Hendrik Harms , William Rowe, Yann Ylavic]
  • http: Make ap_die() robust against any HTTP error code and not modify response status (finally logged) when nothing is to be done. PR 56035. [Yann Ylavic]
  • mod_proxy_connect/wstunnel: If both client and backend sides get readable at the same time, don't lose errors occuring while forwarding on the first side when none occurs next on the other side, and abort. [Yann Ylavic]
  • mod_rewrite: Improve relative substitutions in per-directory/htaccess context for directories found by mod_userdir and mod_alias. These no longer require RewriteBase to be specified. [Eric Covener]
  • mod_proxy_http: Don't expect the backend to ack the "Connection: close" to finally close those not meant to be kept alive by SetEnv proxy-nokeepalive or force-proxy-request-1.0. [Yann Ylavic]
  • core: If explicitly configured, use the KeepaliveTimeout value of the virtual host which handled the latest request on the connection, or by default the one of the first virtual host bound to the same IP:port. PR56226. [Yann Ylavic]
  • mod_lua: After a r:wsupgrade(), mod_lua was not properly responding to a websockets PING but instead invoking the specified script. PR57524. [Edward Lu ]
  • mod_ssl: Add the SSL_CLIENT_CERT_RFC4523_CEA variable, which provides a combination of certificate serialNumber and issuer as defined by CertificateExactMatch in RFC4523. [Graham Leggett]
  • core: Add expression support to ErrorDocument. Switch from a fixed sized 664 byte array per merge to a hash table. [Graham Leggett]
  • ab: Add missing longest request (100%) to CSV export. [Marcin Fabrykowski ]
  • mod_macro: Clear macros before initialization to avoid use-after-free on startup or restart when the module is linked statically. PR 57525 [apache.org tech.futurequest.net, Yann Ylavic]
  • mod_alias: Introduce expression parser support for Alias, ScriptAlias and Redirect. [Graham Leggett]
  • mod_ssl: 'SSLProtocol ALL' was being ignored in virtual host context. PR 57100. [Michael Kaufmann , Yann Ylavic]
  • mpm_event: Avoid access to the scoreboard from the connection while it is suspended (waiting for events). [Eric Covener, Jeff Trawick]
  • mod_ssl: Fix renegotiation failures redirected to an ErrorDocument. PR 57334. [Yann Ylavic].
  • mod_deflate: A misplaced check prevents limiting small bodies with the new inflate limits. PR56872. [Edward Lu, Eric Covener, Yann Ylavic]
  • mod_proxy_ajp: Forward SSL protocol name (SSLv3, TLSv1.1 etc.) as a request attribute to the backend. Recent Tomcat versions will extract it and provide it as a servlet request attribute named "org.apache.tomcat.util.net.secure_protocol_version". [Rainer Jung]
  • core: Optimize string concatenation in expression parser when evaluating a string expression. [Rainer Jung]
  • acinclude.m4: Generate #LoadModule directive in default httpd.conf for every --enable-mpms-shared. PR 53882. [olli hauer , Yann Ylavic]
  • mod_authn_dbd: Fix the error message logged in case of error while querying the database. This is associated to AH01656 and AH01661. [Christophe Jaillet]
  • mod_authz_groupfile: Reduce the severity of AH01667 from ERROR to DEBUG, because it may be evaluated inside . PR55523. [Eric Covener]
  • mod_ssl: Fix small memory leak during initialization when ECDH is used. [Jan Kaluza]

New in Apache 2.4.12 (Jan 28, 2015)

  • mpm_winnt: Accept utf-8 (Unicode) service names and descriptions for internationalization. [William Rowe]
  • mpm_winnt: Normalize the error and status messages emitted by service.c, the service control interface for Windows. [William Rowe]
  • configure: Fix --enable-v4-mapped configuration on *BSD. PR 53824. [ olli hauer , Yann Ylavic ]

New in Apache 2.4.10 (Jul 21, 2014)

  • 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 sevice 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_fcgi: Support iobuffersize parameter. [Jeff Trawick]
  • 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. [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]

New in Apache 2.4.9 (Mar 17, 2014)

  • 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 ].

New in Apache 2.4.8 (Mar 17, 2014)

  • 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]
  • 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] mod_lua: Fix r:setcookie() to add, rather than replace, the Set-Cookie header. PR56105 [Kevin J Walters , Edward Lu ]
  • mod_lua: Allow for database results to be returned as a hash with row-name/value pairs instead of just row-number/value. [Daniel Gruno]
  • mod_rewrite: Add %{CONN_REMOTE_ADDR} as the non-useragent counterpart to %{REMOTE_ADDR}. PR 56094. [Edward Lu ]
  • WinNT MPM: If ap_run_pre_connection() fails or sets c->aborted, don't save the socket for reuse by the next worker as if it were an APR_SO_DISCONNECTED socket. Restores 2.2 behavior. [Eric Covener]
  • mod_dir: Don't search for a DirectoryIndex or DirectorySlash on a URL that was just rewritten by mod_rewrite. PR53929. [Eric Covener]
  • mod_session: When we have a session we were unable to decode, behave as if there was no session at all. [Thomas Eckert ]
  • mod_session: Fix problems interpreting the SessionInclude and SessionExclude configuration. PR 56038. [Erik Pearson ]
  • mod_authn_core: Allow 'es to be seen from auth stanzas under virtual hosts. PR 55622. [Eric Covener]
  • mod_proxy_fcgi: Use apr_socket_timeout_get instead of hard-coded 30 seconds timeout. [Jan Kaluza]
  • mod_proxy: Added support for unix domain sockets as the backend server endpoint [Jim Jagielski, Blaise Tarr ]
  • build: only search for modules (config*.m4) in known subdirectories, see build/config-stubs. [Stefan Fritsch]
  • mod_cache_disk: Fix potential hangs on Windows when using mod_cache_disk. PR 55833. [Eric Covener]
  • mod_ssl: Add support for OpenSSL configuration commands by introducing the SSLOpenSSLConfCmd directive. [Stephen Henson, Kaspar Brand]
  • mod_proxy: Remove (never documented) syntax which is equivalent to . [Christophe Jaillet]
  • mod_authz_user, mod_authz_host, mod_authz_groupfile, mod_authz_dbm, mod_authz_dbd, mod_authnz_ldap: Support the expression parser within the require directives. [Graham Leggett]
  • mod_proxy_http: Core dumped under high load. PR 50335. [Jan Kaluza ]
  • mod_socache_shmcb.c: Remove arbitrary restriction on shared memory size previously limited to 64MB. [Jens Låås ]
  • mod_lua: Use binary copy when dealing with uploads through r:parsebody() to prevent truncating files. [Daniel Gruno]

New in Apache 2.4.7 (Nov 23, 2013)

  • APR 1.5.0 or later is now required for the event MPM.
  • slotmem_shm: Error detection. [Jim Jagielski]
  • event: Use skiplist data structure. [Jim Jagielski]
  • mpm_unix: Add ap_mpm_podx_* implementation to avoid code duplication and align w/ trunk. [Jim Jagielski]
  • Fix potential rejection of valid MaxMemFree and ThreadStackSize directives. [Mike Rumph ]
  • mod_proxy_fcgi: Remove 64K limit on encoded length of all envvars. An individual envvar with an encoded length of more than 16K will be omitted. [Jeff Trawick]
  • mod_proxy_fcgi: Handle reading protocol data that is split between packets. [Jeff Trawick]
  • mod_ssl: Improve handling of ephemeral DH and ECDH keys by allowing custom parameters to be configured via SSLCertificateFile, and by adding standardized DH parameters for 1024/2048/3072/4096 bits. Unless custom parameters are configured, the standardized parameters are applied based on the certificate's RSA/DSA key size. [Kaspar Brand]
  • mod_ssl, configure: Require OpenSSL 0.9.8a or later. [Kaspar Brand]
  • mod_ssl: drop support for export-grade ciphers with ephemeral RSA keys, and unconditionally disable aNULL, eNULL and EXP ciphers (not overridable via SSLCipherSuite). [Kaspar Brand]
  • Add experimental cmake-based build system for Windows. [Jeff Trawick, Tom Donovan]
  • event MPM: Fix possible crashes (third party modules accessing c->sbh) or occasional missed mod_status updates for some keepalive requests under load. [Eric Covener]
  • mod_authn_socache: Support optional initialization arguments for socache providers. [Chris Darroch]
  • mod_session: Reset the max-age on session save. PR 47476. [Alexey Varlamov ]
  • mod_session: After parsing the value of the header specified by the SessionHeader directive, remove the value from the response. PR 55279. [Graham Leggett]
  • mod_headers: Allow for format specifiers in the substitution string when using Header edit. [Daniel Ruggeri]
  • mod_dav: dav_resource->uri is treated as unencoded. This was an unnecessary ABI changed introduced in 2.4.6. PR 55397.
  • mod_dav: Don't require lock tokens for COPY source. PR 55306.
  • core: Don't truncate output when sending is interrupted by a signal, such as from an exiting CGI process. PR 55643. [Jeff Trawick]
  • WinNT MPM: Exit the child if the parent process crashes or is terminated. [Oracle Corporation]
  • Windows: Correct failure to discard stderr in some error log configurations. (Error message AH00093) [Jeff Trawick]
  • mod_session_crypto: Allow using exec: calls to obtain session encryption key. [Daniel Ruggeri]
  • core: Add missing Reason-Phrase in HTTP response headers. PR 54946. [Rainer Jung]
  • mod_rewrite: Make rewrite websocket-aware to allow proxying. PR 55598. [Chris Harris ]
  • mod_ldap: When looking up sub-groups, use an implicit objectClass=* instead of an explicit cn=* filter. [David Hawes ]
  • ab: Add wait time, fix processing time, and output write errors only if they occured. [Christophe Jaillet]
  • worker MPM: Don't forcibly kill worker threads if the child process is exiting gracefully. [Oracle Corporation]
  • core: apachectl -S prints wildcard name-based virtual hosts twice. PR54948 [Eric Covener]
  • mod_auth_basic: Add AuthBasicUseDigestAlgorithm directive to allow migration of passwords from digest to basic authentication. [Chris Darroch]
  • ab: Add a new -l parameter in order not to check the length of the responses. This can be usefull with dynamic pages. PR9945, PR27888, PR42040 [] Suppress formatting of startup messages written to the console when ErrorLogFormat is used. [Jeff Trawick]
  • mod_auth_digest: Be more specific when the realm mismatches because the realm has not been specified. [Graham Leggett]
  • mod_proxy: Add a note in the balancer manager stating whether changes will or will not be persisted and whether settings are inherited. [Daniel Ruggeri, Jim Jagielski]
  • mod_cache: Avoid a crash with strcmp() when the hostname is not provided. [Graham Leggett]
  • core: Add util_fcgi.h and associated definitions and support routines for FastCGI, based largely on mod_proxy_fcgi. [Jeff Trawick]
  • mod_headers: Add 'Header note header-name note-name' for copying a response headers value into a note. [Eric Covener]
  • mod_headers: Add 'setifempty' command to Header and RequestHeader. [Eric Covener]
  • mod_logio: new format-specifier %S (sum) which is the sum of received and sent byte counts. PR54015 [Christophe Jaillet]
  • mod_deflate: Improve error detection when decompressing request bodies with trailing garbage: handle case where trailing bytes are in the same bucket. [Rainer Jung]
  • mod_authz_groupfile, mod_authz_user: Reduce severity of AH01671 and AH01663 from ERROR to DEBUG, since these modules do not know what mod_authz_core is doing with their AUTHZ_DENIED return value. [Eric Covener]
  • mod_ldap: add TRACE5 for LDAP retries. [Eric Covener]
  • mod_ldap: retry on an LDAP timeout during authn. [Eric Covener]
  • mod_ldap: Change "LDAPReferrals off" to actually set the underlying LDAP SDK option to OFF, and introduce "LDAPReferrals default" to take the SDK default, sans rebind authentication callback. [Jan Kaluza ]
  • core: Log a message at TRACE1 when the client aborts a connection. [Eric Covener]
  • WinNT MPM: Don't crash during child process initialization if the Listen protocol is unrecognized. [Jeff Trawick]
  • modules: Fix some compiler warnings. [Guenter Knauf]
  • Sync 2.4 and trunk
  • mod_filter: Add "change=no" as a proto-flag to FilterProtocol to remove a providers initial flags set at registration time. [Eric Covener]
  • core, mod_ssl: Enable the ability for a module to reverse the sense of a poll event from a read to a write or vice versa. This is a step on the way to allow mod_ssl taking full advantage of the event MPM. [Graham Leggett]
  • Makefile.win: Install proper pcre DLL file during debug build install. PR 55235. [Ben Reser ]
  • mod_ldap: Fix a potential memory leak or corruption. PR 54936. [Zhenbo Xu ]
  • ab: Fix potential buffer overflows when processing the T and X command-line options. PR 55360. [Mike Rumph ]
  • fcgistarter: Specify SO_REUSEADDR to allow starting a server with old connections in TIME_WAIT. [Jeff Trawick]
  • core: Add open_htaccess hook which, in conjunction with dirwalk_stat and post_perdir_config (introduced in 2.4.5), allows mpm-itk to be used without patches to httpd core. [Stefan Fritsch]
  • support/htdbm: fix processing of -t command line switch. Regression introduced in 2.4.4 PR 55264 [Jo Rhett ]

New in Apache 2.4.6 (Jul 19, 2013)

  • Revert a broken fix for PR54948 that was applied to 2.4.5 (which was not released) and found post-2.4.5 tagging.

New in Apache 2.4.5 (Jul 19, 2013)

  • SECURITY: CVE-2013-1896 (cve.mitre.org) mod_dav: 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. [Ben Reser ]
  • SECURITY: CVE-2013-2249 (cve.mitre.org) mod_session_dbd: Make sure that dirty flag is respected when saving sessions, and ensure the session ID is changed each time the session changes. This changes the format of the updatesession SQL statement. Existing configurations must be changed. [Takashi Sato , Graham Leggett]
  • mod_auth_basic: Add a generic mechanism to fake basic authentication using the ap_expr parser. AuthBasicFake allows the administrator to construct their own username and password for basic authentication based on their needs. [Graham Leggett]
  • mpm_event: Check that AsyncRequestWorkerFactor is not negative. PR 54254. [Jackie Zhang ]
  • mod_proxy: Ensure we don't attempt to amend a table we are iterating through, ensuring that all headers listed by Connection are removed. [Graham Leggett, Co-Advisor ]
  • mod_proxy_http: Make the proxy-interim-response environment variable effective by formally overriding origin server behaviour. [Graham Leggett, Co-Advisor ]
  • mod_proxy: Fix seg-faults when using the global pool on threaded MPMs [Thomas Eckert , Graham Leggett, Jim Jagielski]
  • mod_deflate: Remove assumptions as to when an EOS bucket might arrive. Gracefully step aside if the body size is zero. [Graham Leggett]
  • mod_ssl: Fix possible truncation of OCSP responses when reading from the server. [Joe Orton]
  • core: Support the SINGLE_LISTEN_UNSERIALIZED_ACCEPT optimization on Linux kernel versions 3.x and above. PR 55121. [Bradley Heilbrun ]
  • mod_cache_socache: Make sure the CacheSocacheMaxSize directive is merged correctly. [Jens Låås ]
  • rotatelogs: add -n number-of-files option to roate through a number of fixed-name logfiles. [Eric Covener]
  • mod_proxy: Support web-socket tunnels via mod_proxy_wstunnel. [Jim Jagielski]
  • mod_cache_socache: Use the name of the socache implementation when performing a lookup rather than using the raw arguments. [Martin Ksellmann ]
  • core: Add dirwalk_stat hook. [Jeff Trawick]
  • core: Add post_perdir_config hook. [Steinar Gunderson ]
  • proxy_util: NULL terminate the right buffer in 'send_http_connect'. [Christophe Jaillet]
  • mod_remoteip: close file in error path. [Christophe Jaillet]
  • core: make the "default" parameter of the "ErrorDocument" option case insensitive. PR 54419 [Tianyin Xu ]
  • mod_proxy_html: make the "ProxyHTMLFixups" options case insensitive. PR 54420 [Tianyin Xu ]
  • mod_cache: Make option "CacheDisable" in mod_cache case insensitive. PR 54462 [Tianyin Xu ]
  • mod_cache: If a 304 response indicates an entity not currently cached, then the cache MUST disregard the response and repeat the request without the conditional. [Graham Leggett, Co-Advisor ]
  • mod_cache: Ensure that we don't attempt to replace a cached response with an older response as per RFC2616 13.12. [Graham Leggett, Co-Advisor ]
  • core, mod_cache: Ensure RFC2616 compliance in ap_meets_conditions() with weak validation combined with If-Range and Range headers. Break out explicit conditional header checks to be useable elsewhere in the server. Ensure weak validation RFC compliance in the byteranges filter. Ensure RFC validation compliance when serving cached entities. PR 16142 [Graham Leggett, Co-Advisor ]
  • core: Add the ability to do explicit matching on weak and strong ETags as per RFC2616 Section 13.3.3. [Graham Leggett, Co-Advisor ]
  • mod_cache: Ensure that updated responses to HEAD requests don't get mistakenly paired with a previously cached body. Ensure that any existing body is removed when a HEAD request is cached. [Graham Leggett, Co-Advisor ]
  • mod_cache: Honour Cache-Control: no-store in a request. [Graham Leggett]
  • mod_cache: Make sure that contradictory entity headers present in a 304 Not Modified response are caught and cause the entity to be removed. [Graham Leggett]
  • mod_cache: Make sure Vary processing handles multivalued Vary headers and multivalued headers referred to via Vary. [Graham Leggett]
  • mod_cache: When serving from cache, only the last header of a multivalued header was taken into account. Fixed. Ensure that Warning headers are correctly handled as per RFC2616. [Graham Leggett]
  • mod_cache: Ignore response headers specified by no-cache=header and private=header as specified by RFC2616 14.9.1 What is Cacheable. Ensure that these headers are still processed when multiple Cache-Control headers are present in the response. PR 54706 [Graham Leggett, Yann Ylavic ]
  • mod_cache: Invalidate cached entities in response to RFC2616 Section 13.10 Invalidation After Updates or Deletions. PR 15868 [Graham Leggett]
  • mod_dav: Improve error handling in dav_method_put(), add new dav_join_error() function. PR 54145. [Ben Reser ]
  • mod_dav: Do not fail PROPPATCH when prop namespace is not known. PR 52559 [Diego Santa Cruz ]
  • mod_dav: When a PROPPATCH attempts to remove a non-existent dead property on a resource for which there is no dead property in the same namespace httpd segfaults. PR 52559 [Diego Santa Cruz ]
  • mod_dav: Sending an If or If-Match header with an invalid ETag doesn't result in a 412 Precondition Failed for a COPY operation. PR54610 [Timothy Wood ]
  • mod_dav: Make sure that when we prepare an If URL for Etag comparison, we compare unencoded paths. PR 53910 [Timothy Wood ]
  • 'AuthGroupFile' and 'AuthUserFile' do not accept anymore the optional 'standard' keyword . It was unused and not documented. PR54463 [Tianyin Xu and Christophe Jaillet]
  • core: Do not over allocate memory within 'ap_rgetline_core' for the common case. [Christophe Jaillet]
  • core: speed up (for common cases) and reduce memory usage of ap_escape_logitem(). This should save 70-100 bytes in the request pool for a default config. [Christophe Jaillet]
  • mod_dav: Ensure URI is correctly uriencoded on return. PR 54611 [Timothy Wood ]
  • mod_proxy: Reject invalid values for Max-Forwards. [Graham Leggett, Co-Advisor ]
  • mod_cache: RFC2616 14.9.3 The s-maxage directive also implies the semantics of the proxy-revalidate directive. [Graham Leggett]
  • mod_ssl: add support for subjectAltName-based host name checking in proxy mode (SSLProxyCheckPeerName). PR 54030. [Kaspar Brand]
  • core: Use the proper macro for HTTP/1.1. [Graham Leggett]
  • event MPM: Provide error handling for ThreadStackSize. PR 54311 [Tianyin Xu , Christophe Jaillet]
  • mod_dav: Do not segfault on PROPFIND with a zero length DBM. PR 52559 [Diego Santa Cruz ]
  • core: Improve error message where client's request-line exceeds LimitRequestLine. PR 54384 [Christophe Jaillet]
  • mod_macro: New module that provides macros within configuration files. [Fabien Coelho]
  • mod_cache_socache: New cache implementation backed by mod_socache that replaces mod_mem_cache known from httpd 2.2. [Graham Leggett]
  • htpasswd: Add -v option to verify a password. [Stefan Fritsch]
  • mod_proxy: Add BalancerInherit and ProxyPassInherit to control whether Proxy Balancers and Workers are inherited by vhosts (default is On). [Jim Jagielski]
  • mod_authnz_ldap: Allow using exec: calls to obtain LDAP bind password. [Daniel Ruggeri]
  • Added balancer parameter failontimeout to allow server admin to configure an IO timeout as an error in the balancer. [Daniel Ruggeri]
  • mod_auth_digest: Fix crashes if shm initialization failed. [Stefan Fritsch]
  • htpasswd, htdbm: Fix password generation. PR 54735. [Stefan Fritsch]
  • core: Add workaround for gcc bug on sparc/64bit. PR 52900. [Stefan Fritsch]
  • mod_setenvif: Fix crash in case SetEnvif and SetEnvIfExpr are used together. PR 54881. [Ruediger Pluem]
  • htdigest: Fix buffer overflow when reading digest password file with very long lines. PR 54893. [Rainer Jung]
  • ap_expr: Add the ability to base64 encode and base64 decode strings and to generate their SHA1 and MD5 hash. [Graham Leggett, Stefan Fritsch]
  • mod_log_config: Fix crash when logging request end time for a failed request. PR 54828 [Rainer Jung]
  • mod_ssl: Catch missing, mismatched or encrypted client cert/key pairs with SSLProxyMachineCertificateFile/Path directives. PR 52212, PR 54698. [Keith Burdis , Joe Orton, Kaspar Brand]
  • mod_ssl: Quiet FIPS mode weak keys disabled and FIPS not selected emits in the error log to debug level. [William Rowe]
  • mod_cache_disk: CacheMinFileSize and CacheMaxFileSize were always using compiled in defaults of 1000000/1 respectively. [Eric Covener]
  • mod_lbmethod_heartbeat, mod_heartmonitor: Respect DefaultRuntimeDir/ DEFAULT_REL_RUNTIMEDIR for the heartbeat storage file. [Jeff Trawick]
  • mod_include: Use new ap_expr for 'elif', like 'if', if legacy parser is not specified. PR 54548 [Tom Donovan]
  • mod_lua: Add some new functions: r:htpassword(), r:mkdir(), r:mkrdir(), r:rmdir(), r:touch(), r:get_direntries(), r.date_parse_rfc(). [Guenter Knauf]
  • mod_lua: Add multipart form data handling. [Daniel Gruno]
  • mod_lua: If a LuaMapHandler doesn't return any value, log a warning and treat it as apache2.OK. [Eric Covener]
  • mod_lua: Add bindings for apr_dbd/mod_dbd database access [Daniel Gruno]
  • mod_lua: Add LuaInputFilter/LuaOutputFilter for creating content filters in Lua [Daniel Gruno]
  • mod_lua: Allow scripts handled by the lua-script handler to return a status code to the client (such as a 302 or a 500) [Daniel Gruno]
  • mod_lua: Decline handling 'lua-script' if the file doesn't exist, rather than throwing an internal server error. [Daniel Gruno]
  • mod_lua: Add functions r:flush and r:sendfile as well as additional request information to the request_rec structure. [Daniel Gruno]
  • mod_lua: Add a server scope for Lua states, which creates a pool of states with managable minimum and maximum size. [Daniel Gruno]
  • mod_lua: Add new directive, LuaMapHandler, for dynamically mapping URIs to Lua scripts and functions using regular expressions. [Daniel Gruno]
  • mod_lua: Add new directive LuaCodeCache for controlling in-memory caching of lua scripts. [Daniel Gruno]

New in Apache 2.4.4 (Feb 22, 2013)

  • SECURITY: CVE-2012-3499 (cve.mitre.org) Various XSS flaws due to unescaped hostnames and URIs HTML output in mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp. [Jim Jagielski, Stefan Fritsch, Niels Heinen ]
  • SECURITY: CVE-2012-4558 (cve.mitre.org) XSS in mod_proxy_balancer manager interface. [Jim Jagielski, Niels Heinen ]
  • mod_dir: Add support for the value 'disabled' in FallbackResource. [Vincent Deffontaines] mod_proxy_connect: Don't keepalive the connection to the client if the backend closes the connection. PR 54474. [Pavel Mateja ]
  • mod_lua: Add bindings for mod_dbd/apr_dbd database access. [Daniel Gruno] mod_proxy: Allow for persistence of local changes made via the balancer-manager between graceful/normal restarts and power cycles. [Jim Jagielski]
  • mod_status: Print out list of times since a Vhost was last used. [Jim Jagielski]
  • mod_proxy: Fix startup crash with mis-defined balancers. PR 52402. [Jim Jagielski]
  • --with-module: Fix failure to integrate them into some existing module directories. PR 40097. [Jeff Trawick]
  • htcacheclean: Fix potential segfault if "-p" is omitted. [Joe Orton]
  • mod_proxy_http: Honour special value 0 (unlimited) of LimitRequestBody PR 54435. [Pavel Mateja ]
  • mod_proxy_ajp: Support unknown HTTP methods. PR 54416. [Rainer Jung]
  • htcacheclean: Fix list options "-a" and "-A". [Rainer Jung]
  • mod_slotmem_shm: Fix mistaken reset of num_free for restored shm. [Jim Jagielski]
  • mod_proxy: non-existance of byrequests is not an immediate error. [Jim Jagielski]
  • mod_proxy_balancer: Improve output of balancer-manager (re: Drn, Dis, Ign, Stby). PR 52478 [Danijel ]
  • configure: Fix processing of --disable-FEATURE for various features. [Jeff Trawick]
  • mod_dialup/mod_http: Prevent a crash in mod_dialup in case of internal redirect. PR 52230.
  • various modules, rotatelogs: Replace use of apr_file_write() with apr_file_write_full() to prevent incomplete writes. PR 53131. [Nicolas Viennot , Stefan Fritsch]
  • ab: Support socket timeout (-s timeout). [Guido Serra ]
  • httxt2dbm: Correct length computation for the 'value' stored in the DBM file. PR 47650 [jon buckybox com]
  • core: Be more correct about rejecting directives that cannot work in sections. [Stefan Fritsch]
  • core: Fix directives like LogLevel that need to know if they are invoked at virtual host context or in Directory/Files/Location/If sections to work properly in If sections that are not in a Directory/Files/Location. [Stefan Fritsch]
  • mod_xml2enc: Fix problems with charset conversion altering the Content-Length. [Micha Lenk ]
  • ap_expr: Add req_novary function that allows HTTP header lookups without adding the name to the Vary header. [Stefan Fritsch]
  • mod_slotmem_*: Add in new fgrab() function which forces a grab and slot allocation on a specified slot. Allow for clearing of inuse array. [Jim Jagielski]
  • mod_proxy_ftp: Fix segfaults on IPv4 requests to hosts with DNS AAAA records. PR 40841. [Andrew Rucker Jones , , Jim Jagielski]
  • mod_auth_form: Make sure that get_notes_auth() sets the user as does get_form_auth() and get_session_auth(). Makes sure that REMOTE_USER does not vanish during mod_include driven subrequests. [Graham Leggett]
  • mod_cache_disk: Resolve errors while revalidating disk-cached files on Windows ("...rename tempfile to datafile failed..."). PR 38827 [Eric Covener]
  • mod_proxy_balancer: Bring XML output up to date. [Jim Jagielski]
  • htpasswd, htdbm: Optionally read passwords from stdin, as more secure alternative to -b. PR 40243. [Adomas Paltanavicius , Stefan Fritsch]
  • htpasswd, htdbm: Add support for bcrypt algorithm (requires apr-util 1.5 or higher). PR 49288. [Stefan Fritsch]
  • htpasswd, htdbm: Put full 48bit of entropy into salt, improve error handling. Add some of htpasswd's improvements to htdbm, e.g. warn if password is truncated by crypt(). [Stefan Fritsch]
  • mod_auth_form: Support the expr parser in the AuthFormLoginRequiredLocation, AuthFormLoginSuccessLocation and AuthFormLogoutLocation directives. [Graham Leggett]
  • mod_ssl: Add support for TLS-SRP (Secure Remote Password key exchange for TLS, RFC 5054). PR 51075. [Quinn Slack , Christophe Renou, Peter Sylvester]
  • mod_rewrite: Stop mergeing RewriteBase down to subdirectories unless new option 'RewriteOptions MergeBase' is configured. PR 53963. [Eric Covener]
  • mod_header: Allow for exposure of loadavg and server load using new format specifiers %l, %i, %b [Jim Jagielski]
  • core: Make ap_regcomp() return AP_REG_ESPACE if out of memory. Make ap_pregcomp() abort if out of memory. This raises the minimum PCRE requirement to version 6.0. [Stefan Fritsch]
  • mod_proxy: Add ability to configure the sticky session separator. PR 53893. [, Jim Jagielski]
  • mod_dumpio: Correctly log large messages PR 54179 [Marek Wianecki ]
  • core: Don't fail at startup with AH00554 when Include points to a directory without any wildcard character. [Eric Covener]
  • core: Fail startup if the argument to ServerTokens is unrecognized. [Jackie Zhang ]
  • mod_log_forensic: Don't log a spurious "-" if a request has been rejected before mod_log_forensic could attach its id to it. [Stefan Fritsch]
  • rotatelogs: Omit the second argument for the first invocation of a post-rotate program when -p is used, per the documentation. [Joe Orton]
  • mod_session_dbd: fix a segmentation fault in the function dbd_remove. PR 53452. [, Reimo Rebane]
  • core: Functions to provide server load values: ap_get_sload() and ap_get_loadavg(). [Jim Jagielski, Jan Kaluza , Jeff Trawick]
  • mod_ldap: Fix regression in handling "server unavailable" errors on Windows. PR 54140. [Eric Covener]
  • syslog logging: Remove stray ", referer" at the end of some messages. [Jeff Trawick]
  • "Iterate" directives: Report an error if no arguments are provided. [Jeff Trawick]
  • mod_ssl: Change default for SSLCompression to off, as compression causes security issues in most setups. (The so called "CRIME" attack). [Stefan Fritsch]
  • ab: add TLS1.1/TLS1.2 options to -f switch, and adapt output to more accurately report the negotiated protocol. PR 53916. [Nicolás Pernas Maradei , Kaspar Brand]
  • core: ErrorDocument now works for requests without a Host header. PR 48357. [Jeff Trawick]
  • prefork: Avoid logging harmless errors during graceful stop. [Joe Orton, Jeff Trawick]
  • mod_proxy: When concatting for PPR, avoid cases where we concat ".../" and "/..." to create "...//..." [Jim Jagielski]
  • mod_cache: Wrong content type and character set when mod_cache serves stale content because of a proxy error. PR 53539. [Rainer Jung, Ruediger Pluem]
  • mod_proxy_ajp: Fix crash in packet dump code when logging with LogLevel trace7 or trace8. PR 53730. [Rainer Jung]
  • httpd.conf: Removed the configuration directives setting a bad_DNT environment introduced in 2.4.3. The actual directives are commented out in the default conf file.
  • core: Apply length limit when logging Status header values. [Jeff Trawick, Chris Darroch]
  • mod_proxy_balancer: The nonce is only derived from the UUID iff not set via the 'nonce' balancer param. [Jim Jagielski]
  • mod_ssl: Match wildcard SSL certificate names in proxy mode. PR 53006. [Joe Orton]
  • Windows: Fix output of -M, -L, and similar command-line options which display information about the server configuration. [Jeff Trawick]

New in Apache 2.4.3 (Aug 21, 2012)

  • SECURITY: CVE-2012-3502 (cve.mitre.org) mod_proxy_ajp, mod_proxy_http: Fix an issue in back end connection closing which could lead to privacy issues due to a response mixup. PR 53727. [Rainer Jung]
  • SECURITY: CVE-2012-2687 (cve.mitre.org) mod_negotiation: Escape filenames in variant list to prevent a possible XSS for a site where untrusted users can upload files to a location with MultiViews enabled. [Niels Heinen ]
  • mod_authnz_ldap: Don't try a potentially expensive nested groups search before exhausting all AuthLDAPGroupAttribute checks on the current group. PR 52464 [Eric Covener]
  • mod_lua: Add new directive LuaAuthzProvider to allow implementing an authorization provider in lua. [Stefan Fritsch]
  • core: Be less strict when checking whether Content-Type is set to "application/x-www-form-urlencoded" when parsing POST data, or we risk losing data with an appended charset. PR 53698 [Petter Berntsen ]
  • httpd.conf: Added configuration directives to set a bad_DNT environment variable based on User-Agent and to remove the DNT header field from incoming requests when a match occurs. This currently has the effect of removing DNT from requests by MSIE 10.0 because it deliberately violates the current specification of DNT semantics for HTTP. [Roy T. Fielding]
  • mod_socache_shmcb: Fix bus error due to a misalignment in some 32 bit builds, especially on Solaris Sparc. PR 53040. [Rainer Jung]
  • mod_cache: Set content type in case we return stale content. [Ruediger Pluem]
  • Windows: Fix SSL failures on windows with AcceptFilter https none. PR 52476. [Jeff Trawick]
  • ab: Fix read failure when targeting SSL server. [Jeff Trawick]
  • The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR: - mod_auth_digest: shared memory file [Jeff Trawick]
  • htpasswd: Use correct file mode for checking if file is writable. PR 45923. [Stefan Fritsch]
  • mod_rewrite: Fix crash with dbd RewriteMaps. PR 53663. [Mikhail T. ]
  • mod_ssl: Add new directive SSLCompression to disable TLS-level compression. PR 53219. [Björn Jacke , Stefan Fritsch]
  • mod_lua: Add a few missing request_rec fields. Rename remote_ip to client_ip to match conn_rec. [Stefan Fritsch]
  • mod_lua: Change prototype of vm_construct, to work around gcc bug which causes a segfault. PR 52779. [Dick Snippe ]
  • mpm_event: Don't count connections in lingering close state when calculating how many additional connections may be accepted. [Stefan Fritsch]
  • mod_ssl: If exiting during initialization because of a fatal error, log a message to the main error log pointing to the appropriate virtual host error log. [Stefan Fritsch]
  • mod_proxy_ajp: Reduce memory usage in case of many keep-alive requests on one connection. PR 52275. [Naohiro Ooiwa ]
  • mod_proxy_balancer: Restore balancing after a failed worker has recovered when using lbmethod_bybusyness. PR 48735. [Jeff Trawick]
  • mod_setenvif: Compile some global regex only once during startup. This should save some memory, especially with .htaccess. [Stefan Fritsch]
  • core: Add the port number to the vhost's name in the scoreboard. [Stefan Fritsch]
  • mod_proxy: Fix ProxyPassReverse for balancer configurations. PR 45434. [Joe Orton]
  • mod_lua: Add the parsebody function for parsing POST data. PR 53064. [Daniel Gruno]
  • apxs: Use LDFLAGS from config_vars.mk in addition to CFLAGS and CPPFLAGS. [Stefan Fritsch]
  • mod_proxy: Fix memory leak or possible corruption in ProxyBlock implementation. [Ruediger Pluem, Joe Orton]
  • mod_proxy: Check hostname from request URI against ProxyBlock list, not forward proxy, if ProxyRemote* is configured. [Joe Orton]
  • mod_proxy_connect: Avoid DNS lookup on hostname from request URI if ProxyRemote* is configured. PR 43697. [Joe Orton]
  • mpm_event, mpm_worker: Remain active amidst prevalent child process resource shortages. [Jeff Trawick]
  • Add "strict" and "warnings" pragmas to Perl scripts. [Rich Bowen]
  • The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR: - core: the scoreboard (ScoreBoardFile), pid file (PidFile), and mutexes (Mutex) [Jim Jagielski]
  • ab: Fix bind() errors. [Joe Orton]
  • mpm_event: Don't do a blocking write when starting a lingering close from the listener thread. PR 52229. [Stefan Fritsch]
  • mod_so: If a filename without slashes is specified for LoadFile or LoadModule and the file cannot be found in the server root directory, try to use the standard dlopen() search path. [Stefan Fritsch]
  • mpm_event, mpm_worker: Fix cases where the spawn rate wasn't reduced after child process resource shortages. [Jeff Trawick]
  • mpm_prefork: Reduce spawn rate after a child process exits due to unexpected poll or accept failure. [Jeff Trawick]
  • core: Log value of Status header line in script responses rather than the fixed header name. [Chris Darroch]
  • mpm_ssl: Fix handling of empty response from OCSP server. [Jim Meyering , Joe Orton]
  • mpm_event: Fix handling of MaxConnectionsPerChild. [Stefan Fritsch]
  • mod_authz_core: If an expression in "Require expr" returns denied and references %{REMOTE_USER}, trigger authentication and retry. PR 52892. [Stefan Fritsch]
  • core: Always log if LimitRequestFieldSize triggers. [Stefan Fritsch]
  • mod_deflate: Skip compression if compression is enabled at SSL level. [Stefan Fritsch]
  • core: Add missing HTTP status codes registered with IANA. [Julian Reschke , Rainer Jung]
  • mod_ldap: Treat the "server unavailable" condition as a transient error with all LDAP SDKs. [Filip Valder ]
  • core: Fix spurious "not allowed here" error returned when the Options directive is used in .htaccess and "AllowOverride Options" (with no specific options restricted) is configured. PR 53444. [Eric Covener]
  • mod_authz_core: Fix parsing of Require arguments in . PR 53048. [Stefan Fritsch]
  • mod_log_config: Fix %{abc}C truncating cookie values at first "=". PR 53104. [Greg Ames]
  • mod_ext_filter: Fix error_log spam when input filters are configured. [Joe Orton]
  • mod_rewrite: Add "AllowAnyURI" option. PR 52774. [Joe Orton]
  • htdbm, htpasswd: Don't crash if crypt() fails (e.g. with FIPS enabled). [Paul Wouters , Joe Orton]
  • core: Use a TLS 1.0 close_notify alert for internal dummy connection if the chosen listener is configured for https. [Joe Orton]
  • mod_proxy: Use the the same hostname for SNI as for the HTTP request when forwarding to SSL backends. PR 53134. [Michael Weiser , Ruediger Pluem]
  • mod_info: Display all registered providers. [Stefan Fritsch]
  • mod_ssl: Send the error message for speaking http to an https port using HTTP/1.0 instead of HTTP/0.9, and omit the link that may be wrong when using SNI. PR 50823. [Stefan Fritsch]
  • core: Fix segfault in logging if r->useragent_addr or c->client_addr is unset. PR 53265. [Stefan Fritsch]
  • log_server_status: Bring Perl style forward to the present, use standard modules, update for new format of server-status output. PR 45424. [Richard Bowen, Dave Brondsema, and others]
  • mod_sed, mod_log_debug, mod_rewrite: Symbol namespace cleanups. [Joe Orton, André Malo]
  • core: Prevent "httpd -k restart" from killing server in presence of config error. [Joe Orton]
  • mod_proxy_fcgi: If there is an error reading the headers from the backend, send an error to the client. PR 52879. [Stefan Fritsch]

New in Apache 2.4.2 (Apr 17, 2012)

  • SECURITY: CVE-2012-0883 (cve.mitre.org) envvars: Fix insecure handling of LD_LIBRARY_PATH that could lead to the current working directory to be searched for DSOs. [Stefan Fritsch]
  • mod_slotmem_shm: Honor DefaultRuntimeDir [Jim Jagielski]
  • mod_ssl: Fix crash with threaded MPMs due to race condition when initializing EC temporary keys. [Stefan Fritsch]
  • mod_proxy: Add the forcerecovery balancer parameter that determines if recovery for balancer workers is enforced. [Ruediger Pluem]
  • Fix MPM DSO load failure on AIX. [Jeff Trawick]
  • mod_proxy: Correctly set up reverse proxy worker. PR 52935. [Petter Berntsen ]
  • mod_sed: Don't define PATH_MAX to a potentially undefined value, causing compile problems on GNU hurd. [Stefan Fritsch]
  • core: Add ap_runtime_dir_relative() and DefaultRuntimeDir. [Jeff Trawick]
  • core: Fix breakage of Listen directives with MPMs that use a per-directory config. PR 52904. [Stefan Fritsch]
  • core: Disallow directives in AllowOverrideList which are only allowed in VirtualHost or server context. These are usually not prepared to be called in .htaccess files. [Stefan Fritsch]
  • core: In AllowOverrideList, do not allow 'None' together with other directives. PR 52823. [Stefan Fritsch]
  • mod_slotmem_shm: Support DEFAULT_REL_RUNTIMEDIR for file-based shm. [Jim Jagielski]
  • core: Fix merging of AllowOverrideList and ContentDigest. [Stefan Fritsch]
  • mod_request: Fix validation of the KeptBodySize argument so it doesn't always throw a configuration error. PR 52981 [Eric Covener]
  • core: Add filesystem paths to access denied / access failed messages AH00035 and AH00036. [Eric Covener]
  • mod_dumpio: Properly handle errors from subsequent input filters. PR 52914. [Stefan Fritsch]
  • Unix MPMs: Fix small memory leak in parent process if connect() failed when waking up children. [Joe Orton]
  • "DirectoryIndex disabled" now undoes DirectoryIndex settings in the current configuration section, not just previous config sections. PR 52845. [Eric Covener]
  • mod_xml2enc: Fix broken handling of EOS buckets which could lead to response headers not being sent. PR 52766. [Stefan Fritsch]
  • mod_ssl: Properly free the GENERAL_NAMEs. PR 32652. [Kaspar Brand]
  • core: Check during config test that directories for the access logs actually exist. PR 29941. [Stefan Fritsch]
  • mod_xml2enc, mod_proxy_html: Enable per-module loglevels. [Stefan Fritsch]
  • mod_filter: Fix segfault with AddOutputFilterByType. PR 52755. [Stefan Fritsch]
  • mod_session: Sessions are encoded as application/x-www-form-urlencoded strings, however we do not handle the encoding of spaces properly. Fixed. [Graham Leggett]
  • Configuration: Example in comment should use a path consistent with the default configuration. PR 52715. [Rich Bowen, Jens Schleusener, Rainer Jung]
  • Configuration: Switch documentation links from trunk to 2.4. [Rainer Jung]
  • configure: Fix out of tree build using apr and apr-util in srclib. [Rainer Jung]

New in Apache 2.4.1 (Feb 20, 2012)

  • SECURITY: CVE-2012-0053 (cve.mitre.org) Fix an issue in error responses that could expose "httpOnly" cookies when no custom ErrorDocument is specified for status code 400. [Eric Covener]
  • mod_proxy_balancer: Fix crash on Windows. PR 52402 [Mladen Turk]
  • core: Check during configtest that the directories for error logs exist. PR 29941 [Stefan Fritsch]
  • Core configuration: add AllowOverride option to treat syntax errors in .htaccess as non-fatal. PR 52439 [Nick Kew, Jim Jagielski]
  • core: Fix memory consumption in core output filter with streaming bucket types like CGI or PIPE. [Joe Orton, Stefan Fritsch]
  • configure: Disable modules at configure time if a prerequisite module is not enabled. PR 52487. [Stefan Fritsch]
  • Rewrite and proxy now decline what they don't support rather than fail the request. [Joe Orton]
  • Fix building against external apr plus ap-util if apr is not installed in a system default path. [Rainer Jung]
  • Doxygen fixes and improvements. [Joe Orton, Igor Galić]
  • core: Fix building against PCRE 8.30 by switching from the obsolete pcre_info() to pcre_fullinfo(). PR 52623 [Ruediger Pluem, Rainer Jung]

New in Apache 2.2.22 (Feb 1, 2012)

  • SECURITY: CVE-2011-3368 (cve.mitre.org) - Reject requests where the request-URI does not match the HTTP specification, preventing unexpected expansion of target URLs in some reverse proxy configurations. [Joe Orton]
  • SECURITY: CVE-2011-3607 (cve.mitre.org) - Fix integer overflow in ap_pregsub() which, when the mod_setenvif module is enabled, could allow local users to gain privileges via a .htaccess file. [Stefan Fritsch, Greg Ames]
  • SECURITY: CVE-2011-4317 (cve.mitre.org) - Resolve additional cases of URL rewriting with ProxyPassMatch or RewriteRule, where particular request-URIs could result in undesired backend network exposure in some configurations. [Joe Orton]
  • SECURITY: CVE-2012-0021 (cve.mitre.org) - mod_log_config: Fix segfault (crash) when the '%{cookiename}C' log format string is in use and a client sends a nameless, valueless cookie, causing a denial of service. The issue existed since version 2.2.17. PR 52256. [Rainer Canavan ]
  • SECURITY: CVE-2012-0031 (cve.mitre.org) - Fix scoreboard issue which could allow an unprivileged child process could cause the parent to crash at shutdown rather than terminate cleanly. [Joe Orton]
  • SECURITY: CVE-2012-0053 (cve.mitre.org) - Fix an issue in error responses that could expose "httpOnly" cookies when no custom ErrorDocument is specified for status code 400. [Eric Covener]
  • mod_proxy_ajp: Try to prevent a single long request from marking a worker in error. [Jean-Frederic Clere]
  • config: Update the default mod_ssl configuration: Disable SSLv2, only allow >= 128bit ciphers, add commented example for speed optimized cipher list, limit MSIE workaround to MSIE

New in Apache 2.3.16 Beta (Dec 20, 2011)

  • core: Limit line length in .htaccess to 8K like in 2.2.x, to avoid additional DoS potential. [Stefan Fritsch]
  • core, all modules: Add unique tag to most error log messages. [Stefan Fritsch]
  • mod_socache_memcache: Change provider name from "mc" to "memcache" to match module name. [Stefan Fritsch]
  • mod_slotmem_shm: Change provider name from "shared" to "shm" to match module name. [Stefan Fritsch]
  • mod_ldap: Fix segfault with Solaris LDAP when enabling ldaps. This requires an apr-util fix in which is available in apr-util >= 1.4.0. PR 42682. [Stefan Fritsch]
  • mod_rewrite: Add the AllowNoSlash RewriteOption, which makes it possible for RewriteRules to be placed in .htaccess files that match the directory with no trailing slash. PR 48304. [Matthew Byng-Maddick ]
  • mod_session_crypto: Add a SessionCryptoPassphraseFile directive so that the administrator can hide the keys from the configuration. [Graham Leggett]
  • Introduce a per request version of the remote IP address, which can be optionally modified by a module when the effective IP of the client is not the same as the real IP of the client (such as a load balancer). Introduce a per connection "peer_ip" and a per request "client_ip" to distinguish between the raw IP address of the connection and the effective IP address of the request. [Graham Leggett]
  • ap_pass_brigade_fchk() function added. [Jim Jagielski]
  • core: Pass ap_errorlog_info struct to error log hook. [Stefan Fritsch]
  • mod_cache_disk: Make sure we check return codes on all writes and attempts to close, and clean up after ourselves in these cases. PR43589. [Graham Leggett]
  • mod_cache_disk: Remove the unnecessary intermediate brigade while writing to disk. Fixes a problem where mod_disk_cache was leaving buckets in the intermediate brigade and not passing them to out on exit. [Florian S. , Graham Leggett]
  • mod_ssl: use a shorter setting for SSLCipherSuite in the default default configuration file, and add some more information about configuring a speed-optimized alternative. [Kaspar Brand]
  • mod_ssl: drop support for the SSLv2 protocol. [Kaspar Brand]
  • mod_lua: Stop losing track of all but the most specific LuaHook* directives when multiple per-directory config sections are used. Adds LuaInherit directive to control how parent sections are merged. [Eric Covener]
  • Server directive display (-L): Include directives of DSOs. [Jeff Trawick]
  • mod_cache: Make sure we merge headers correctly when we handle a non cacheable conditional response. PR52120. [Graham Leggett]
  • Pre GA removal of components that will not be included: - mod_noloris was superseded by mod_reqtimeout - mod_serf - mpm_simple [Rainer Jung]
  • core: Set MaxMemFree 2048 by default. [Stefan Fritsch]
  • mpm_event: Fix assertion failure during very high load. [Stefan Fritsch]
  • configure: Additional modules loaded by default: mod_headers. Modules moved from module set "few" to "most" and no longer loaded by default: mod_actions, mod_allowmethods, mod_auth_form, mod_buffer, mod_cgi(d), mod_include, mod_negotiation, mod_ratelimit, mod_request, mod_userdir. [Rainer Jung]
  • mod_lua: Use the right lua scope when used as a hook. [Rainer Jung]
  • configure: Only load the really imporant modules (i.e. those enabled by the 'few' selection) by default. Don't handle modules enabled with --enable-foo specially. [Stefan Fritsch]
  • end-generation hook: Fix false notification of end-of-generation for temporary intervals with no active MPM children. [Jeff Trawick]
  • mod_ssl: Add support for configuring persistent TLS session ticket encryption/decryption keys (useful for clustered environments). [Paul Querna, Kaspar Brand]
  • mod_usertrack: Use random value instead of remote IP address. [Stefan Fritsch]

New in Apache 2.2.21 (Dec 20, 2011)

  • SECURITY: CVE-2011-3348 (cve.mitre.org) mod_proxy_ajp: Respond with HTTP_NOT_IMPLEMENTED when the method is not recognized. [Jean-Frederic Clere]
  • Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20. PR 51748. []
  • mod_filter: Instead of dropping the Accept-Ranges header when a filter registered with AP_FILTER_PROTO_NO_BYTERANGE is present, set the header value to "none". [Eric Covener, Ruediger Pluem]
  • mod_proxy_ajp: Ignore flushing if headers have not been sent. PR 51608 [Ruediger Pluem]
  • mod_dav_fs: Fix segfault if apr DBM driver cannot be loaded. PR 51751. [Stefan Fritsch]
  • mod_alias: Adjust log severity of "incomplete redirection target" message. PR 44020.
  • mod_rewrite: Check validity of each internal (int:) RewriteMap even if the RewriteEngine is disabled in server context, avoiding a crash while referencing the invalid int: map at runtime. PR 50994. [Ben Noordhuis ]
  • core: Allow MaxRanges none|unlimited|default and set 'Accept-Ranges: none' in the case Ranges are being ignored with MaxRanges none. [Eric Covener]
  • mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets. [Rainer Jung]

New in Apache 2.3.16 Beta (Dec 20, 2011)

  • core: Limit line length in .htaccess to 8K like in 2.2.x, to avoid additional DoS potential. [Stefan Fritsch]
  • core, all modules: Add unique tag to most error log messages. [Stefan Fritsch]
  • mod_socache_memcache: Change provider name from "mc" to "memcache" to match module name. [Stefan Fritsch]
  • mod_slotmem_shm: Change provider name from "shared" to "shm" to match module name. [Stefan Fritsch]
  • mod_ldap: Fix segfault with Solaris LDAP when enabling ldaps. This requires an apr-util fix in which is available in apr-util >= 1.4.0. PR 42682. [Stefan Fritsch]
  • mod_rewrite: Add the AllowNoSlash RewriteOption, which makes it possible for RewriteRules to be placed in .htaccess files that match the directory with no trailing slash. PR 48304. [Matthew Byng-Maddick ]
  • mod_session_crypto: Add a SessionCryptoPassphraseFile directive so that the administrator can hide the keys from the configuration. [Graham Leggett]
  • Introduce a per request version of the remote IP address, which can be optionally modified by a module when the effective IP of the client is not the same as the real IP of the client (such as a load balancer). Introduce a per connection "peer_ip" and a per request "client_ip" to distinguish between the raw IP address of the connection and the effective IP address of the request. [Graham Leggett]
  • ap_pass_brigade_fchk() function added. [Jim Jagielski]
  • core: Pass ap_errorlog_info struct to error log hook. [Stefan Fritsch]
  • mod_cache_disk: Make sure we check return codes on all writes and attempts to close, and clean up after ourselves in these cases. PR43589. [Graham Leggett]
  • mod_cache_disk: Remove the unnecessary intermediate brigade while writing to disk. Fixes a problem where mod_disk_cache was leaving buckets in the intermediate brigade and not passing them to out on exit. [Florian S. , Graham Leggett]
  • mod_ssl: use a shorter setting for SSLCipherSuite in the default default configuration file, and add some more information about configuring a speed-optimized alternative. [Kaspar Brand]
  • mod_ssl: drop support for the SSLv2 protocol. [Kaspar Brand]
  • mod_lua: Stop losing track of all but the most specific LuaHook* directives when multiple per-directory config sections are used. Adds LuaInherit directive to control how parent sections are merged. [Eric Covener]
  • Server directive display (-L): Include directives of DSOs. [Jeff Trawick]
  • mod_cache: Make sure we merge headers correctly when we handle a non cacheable conditional response. PR52120. [Graham Leggett]
  • Pre GA removal of components that will not be included: - mod_noloris was superseded by mod_reqtimeout - mod_serf - mpm_simple [Rainer Jung]
  • core: Set MaxMemFree 2048 by default. [Stefan Fritsch]
  • mpm_event: Fix assertion failure during very high load. [Stefan Fritsch]
  • configure: Additional modules loaded by default: mod_headers. Modules moved from module set "few" to "most" and no longer loaded by default: mod_actions, mod_allowmethods, mod_auth_form, mod_buffer, mod_cgi(d), mod_include, mod_negotiation, mod_ratelimit, mod_request, mod_userdir. [Rainer Jung]
  • mod_lua: Use the right lua scope when used as a hook. [Rainer Jung]
  • configure: Only load the really imporant modules (i.e. those enabled by the 'few' selection) by default. Don't handle modules enabled with --enable-foo specially. [Stefan Fritsch]
  • end-generation hook: Fix false notification of end-of-generation for temporary intervals with no active MPM children. [Jeff Trawick]
  • mod_ssl: Add support for configuring persistent TLS session ticket encryption/decryption keys (useful for clustered environments). [Paul Querna, Kaspar Brand]
  • mod_usertrack: Use random value instead of remote IP address. [Stefan Fritsch]

New in Apache 2.2.20 (Aug 31, 2011)

  • SECURITY: CVE-2011-3192 (cve.mitre.org) core: Fix handling of byte-range requests to use less memory, to avoid denial of service. If the sum of all ranges in a request is larger than the original file, ignore the ranges and send the complete file. PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener]
  • mod_authnz_ldap: If the LDAP server returns constraint violation, don't treat this as an error but as "auth denied". [Stefan Fritsch]
  • mod_filter: Fix FilterProvider conditions of type "resp=" (response headers) for CGI. [Joe Orton, Rainer Jung]
  • mod_reqtimeout: Fix a timed out connection going into the keep-alive state after a timeout when discarding a request body. PR 51103. [Stefan Fritsch]
  • core: Do the hook sorting earlier so that the hooks are properly sorted for the pre_config hook and during parsing the config. [Stefan Fritsch]

New in Apache 2.3.14 Beta (Aug 10, 2011)

  • mod_proxy_ajp: Improve trace logging. [Rainer Jung]
  • mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets. [Rainer Jung]
  • mod_proxy: enable absolute URLs to be rewritten with ProxyPassReverse, e.g. to reverse proxy "Location: https://other-internal-server/login" [Nick Kew]
  • prefork, worker, event: Make sure crashes are logged to the error log if httpd has already detached from the console. [Stefan Fritsch]
  • prefork, worker, event: Reduce period during startup/restart where a successive signal may be lost. PR 43696. [Arun Bhalla ]
  • mod_allowmethods: Correct Merging of "reset" and do not allow an empty parameter list for the AllowMethods directive. [Rainer Jung]
  • configure: Update selection of modules for 'all' and 'most'. 'all' will now enable all modules except for example and test modules. Make the selection for 'most' more useful (including ssl and proxy). Both 'all' and 'most' will now disable modules if dependencies are missing instead of aborting. If a specific module is requested with --enable-XXX=yes, missing dependencies will still cause configure to exit with an error. [Stefan Fritsch]
  • mod_ldap: Revert the integration of apr-ldap as ap_ldap which was done in 2.3.13. [Stefan Fritsch]
  • core: For '*' or '_default_' vhosts, use a wildcard address of any address family, rather than IPv4 only. [Joe Orton]
  • core, mod_rewrite, mod_ssl, mod_nw_ssl: Make the SERVER_NAME variable include [ ] for literal IPv6 addresses, as mandated by RFC 3875. PR 26005. [Stefan Fritsch]
  • mod_negotiation: Fix parsing of Content-Length in type maps. PR 42203. [Nagae Hidetake ]
  • core: Add more logging to ap_scan_script_header_err* functions. Add ap_scan_script_header_err*_ex functions that take a module index for logging. mod_cgi, mod_cgid, mod_proxy_fcgi, mod_proxy_scgi, mod_isapi: Use the new functions in order to make logging configurable per-module. [Stefan Fritsch]
  • mod_dir: Add DirectoryIndexRedirect to send an external redirect to the proper index. [Eric Covener]
  • mod_deflate: Don't try to compress requests with a zero sized body. PR 51350. [Stefan Fritsch]
  • core: Fix startup on IP6-only systems. PR 50592. [Joe Orton, ]
  • suexec: Add environment variables CONTEXT_DOCUMENT_ROOT, CONTEXT_PREFIX, REDIRECT_ERROR_NOTES, REDIRECT_SCRIPT_FILENAME, REQUEST_SCHEME to the whitelist in suexec. PR 51499. [Graham Laverty , Stefan Fritsch]
  • mod_rewrite: Fix regexp RewriteCond with NoCase. [Stefan Fritsch]
  • mod_log_debug: New module that allows to log custom messages at various phases in the request processing. [Stefan Fritsch]
  • mod_ssl: Add some debug logging when loading server certificates. PR 37912. [Nick Burch ]
  • configure: Support reallyall option also for --enable-mods-static. [Rainer Jung]
  • mod_socache_dc: add --with-distcache to configure for choosing the distcache installation directory. [Rainer Jung]
  • mod_socache_dc: use correct build variable MOD_SOCACHE_DC_LDADD instead of MOD_SOCACHE_LDADD in build macro. [Rainer Jung]
  • mod_lua, mod_deflate: respect platform specific runpath linker flag. [Rainer Jung]
  • configure: Only link the httpd binary against PCRE. No other support binary needs PCRE. [Rainer Jung]
  • configure: tolerate dependency checking failures for modules if they have been enabled implicitely. [Rainer Jung]
  • configure: Allow to specify module specific custom linker flags via the MOD_XXX_LDADD variables. [Rainer Jung]
  • Changes with Apache 2.3.13
  • ab: Support specifying the local address to use. PR 48930. [Peter Schuller ]
  • core: Add support to ErrorLogFormat for logging the system unique thread id under Linux. [Stefan Fritsch]
  • event: New AsyncRequestWorkerFactor directive to influence how many connections will be accepted per process. [Stefan Fritsch]
  • prefork, worker, event: Rename MaxClients to MaxRequestWorkers which describes more accurately what it does. [Stefan Fritsch]
  • rotatelogs: Add -p argument to specify custom program to invoke after a log rotation. PR 51285. [Sven Ulland , Joe Orton]
  • mod_ssl: Don't do OCSP checks for valid self-issued certs. [Kaspar Brand]
  • mod_ssl: Avoid unnecessary renegotiations with SSLVerifyDepth 0. PR 48215. [Kaspar Brand]
  • mod_status: Display information about asynchronous connections in the server-status. PR 44377. [Stefan Fritsch]
  • mpm_event: If the number of connections of a process is very high, or if all workers are busy, don't accept new connections in that process. [Stefan Fritsch]
  • mpm_event: Process lingering close asynchronously instead of tying up worker threads. [Jeff Trawick, Stefan Fritsch]
  • mpm_event: If MaxMemFree is set, limit the number of pools that is kept around. [Stefan Fritsch]
  • mpm_event: Fix graceful restart aborting connections. PR 43359. [Takashi Sato ]
  • mod_ssl: Disable AECDH ciphers in example config. PR 51363. [Rob Stradling ]
  • core: Introduce new function ap_get_conn_socket() to access the socket of a connection. [Stefan Fritsch]
  • mod_data: Introduce a filter to support RFC2397 data URLs. [Graham Leggett]
  • mod_userdir/mod_alias/mod_vhost_alias: Correctly set DOCUMENT_ROOT, CONTEXT_DOCUMENT_ROOT, CONTEXT_PREFIX. PR 26052. PR 46198. [Stefan Fritsch]
  • core: Allow to override document_root on a per-request basis. Introduce new context_document_root and context_prefix which provide information about non-global URI-to-directory mappings (from e.g. mod_userdir or mod_alias) to scripts. PR 49705. [Stefan Fritsch]
  • core: Add and to complement sections. [Stefan Fritsch]
  • mod_ext_filter: Remove DebugLevel option in favor of per-module loglevel. [Stefan Fritsch]
  • mod_include: Make the "#if expr" element use the new "ap_expr" expression parser. The old parser can still be used by setting the new directive SSILegacyExprParser. [Stefan Fritsch]
  • core: Add some features to ap_expr for use by mod_include: a restricted mode that does not allow to bypass request access restrictions; new variables DOCUMENT_URI (alias for REQUEST_URI), LAST_MODIFIED; -A as an alias for -U; an additional data entry in ap_expr_eval_ctx_t for use by the consumer; an extensible ap_expr_exec_ctx() API that allows to use that data entry. [Stefan Fritsch]
  • mod_include: Merge directory configs instead of one SSI* config directive causing all other per-directory SSI* config directives to be reset. [Stefan Fritsch]
  • mod_charset_lite: Remove DebugLevel option in favour of per-module loglevel. [Stefan Fritsch]
  • core: Add ap_regexec_len() function that works with non-null-terminated strings. PR 51231. [Yehezkel Horowitz ]
  • mod_authnz_ldap: If the LDAP server returns constraint violation, don't treat this as an error but as "auth denied". [Stefan Fritsch]
  • mod_proxy_fcgi|scgi: Add support for "best guess" of PATH_INFO for SCGI/FCGI. PR 50880, 50851. [Mark Montague , Jim Jagielski]
  • mod_cache: When content is served stale, and there is no means to revalidate the content using ETag or Last-Modified, and we have mandated no stale-on-error behaviour, stand down and don't cache. Saves a cache write that will never be read. [Graham Leggett]
  • mod_reqtimeout: Fix a timed out connection going into the keep-alive state after a timeout when discarding a request body. PR 51103. [Stefan Fritsch]
  • core: Add various file existance test operators to ap_expr. [Stefan Fritsch]
  • mod_proxy_express: New mass reverse-proxy switch extension for mod_proxy. [Jim Jagielski]
  • configure: Fix script error when configuring module set "reallyall". [Rainer Jung]

New in Apache 2.2.19 (Aug 10, 2011)

  • Revert ABI breakage in 2.2.18 caused by the function signature change of ap_unescape_url_keep2f(). This release restores the signature from 2.2.17 and prior, and introduces ap_unescape_url_keep2f_ex(). [Eric Covener]

New in Apache 2.2.18 (May 12, 2011)

  • Log an error for failures to read a chunk-size, and return 408 instead 413 when this is due to a read timeout. This change also fixes some cases of two error documents being sent in the response for the same scenario. [Eric Covener] PR49167
  • core: Only log a 408 if it is no keepalive timeout. PR 39785 [Ruediger Pluem, Mark Montague ]
  • core: Treat timeout reading request as 408 error, not 400. Log 408 errors in access log as was done in Apache 1.3.x. PR 39785 [Nobutaka Mantani , Stefan Fritsch, Dan Poirier]
  • Core HTTP: disable keepalive when the Client has sent Expect: 100-continue but we respond directly with a non-100 response. Keepalive here led to data from clients continuing being treated as a new request. PR 47087. [Nick Kew]
  • htpasswd: Change the default algorithm for htpasswd to MD5 on all platforms. Crypt with its 8 character limit is not useful anymore; improve out of disk space handling (PR 30877); print a warning if a password is truncated by crypt. [Stefan Fritsch]
  • mod_win32: Added shebang check for '! so that .vbs scripts work as CGI. Win32's cscript interpreter can only use a single quote as comment char. [Guenter Knauf]
  • configure: Fix htpasswd/htdbm libcrypt link errors with some newer linkers. [Stefan Fritsch]
  • MinGW build improvements. PR 49535. [John Vandenberg , Jeff Trawick]
  • mod_ssl, ab: Support OpenSSL compiled without SSLv2 support. [Stefan Fritsch]
  • core: AllowEncodedSlashes new option NoDecode to allow encoded slashes in request URL path info but not decode them. PR 35256, PR 46830. [Dan Poirier]
  • mod_rewrite: Allow to unset environment variables. PR 50746. [Rainer Jung]
  • suEXEC: Add Suexec directive to disable suEXEC without renaming the binary (Suexec Off), or force startup failure if suEXEC is required but not supported (Suexec On). [Jeff Trawick]
  • mod_proxy: Put the worker in error state if the SSL handshake with the backend fails. PR 50332. [Daniel Ruggeri , Ruediger Pluem]
  • prefork: Update MPM state in children during a graceful restart. Allow the HTTP connection handling loop to terminate early during a graceful restart. PR 41743. [Andrew Punch ]
  • mod_ssl: Correctly read full lines in input filter when the line is incomplete during first read. PR 50481. [Ruediger Pluem]
  • mod_autoindex: Merge IndexOptions from server to directory context when the directory has no mod_autoindex directives. PR 47766. [Eric Covener]
  • mod_cache: Make sure that we never allow a 304 Not Modified response that we asked for to leak to the client should the 304 response be uncacheable. PR45341 [Graham Leggett]
  • mod_dav: Send 400 error if malformed Content-Range header is received for a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
  • mod_userdir: Add merging of enable, disable, and filename arguments to UserDir directive, leaving enable/disable of userlists unmerged. PR 44076 [Eric Covener]
  • core: Honor 'AcceptPathInfo OFF' during internal redirects, such as per-directory mod_rewrite substitutions. PR 50349. [Eric Covener]
  • mod_cache: Check the request to determine whether we are allowed to return cached content at all, and respect a "Cache-Control: no-cache" header from a client. Previously, "no-cache" would behave like "max-age=0". [Graham Leggett]
  • mod_mem_cache: Add a debug msg when a streaming response exceeds MCacheMaxStreamingBuffer, since mod_cache will follow up with a scary 'memory allocation failed' debug message. PR 49604. [Eric Covener]
  • proxy_connect: Don't give up in the middle of a CONNECT tunnel when the child process is starting to exit. PR50220. [Eric Covener]

New in Apache 2.2.17 (Oct 18, 2010)

  • prefork MPM: Run cleanups for final request when process exits gracefully to work around a flaw in apr-util. PR 43857. [Tom Donovan]
  • mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend connections and other protocol handlers (like mod_ftp). Enforce the timeout for AP_MODE_GETLINE. If there is a timeout, shorten the lingering close time from 30 to 2 seconds. [Stefan Fritsch]
  • Proxy balancer: support setting error status according to HTTP response code from a backend. PR 48939. [Daniel Ruggeri ]
  • mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the password to UTF-8. PR 45318. [Johannes Müller , Stefan Fritsch]
  • core: check symlink ownership if both FollowSymlinks and SymlinksIfOwnerMatch are set [Nick Kew]
  • core: fix origin checking in SymlinksIfOwnerMatch PR 36783 [Robert L Mathews ]
  • mod_headers: Enable multi-match-and-replace edit option PR 46594 [Nick Kew]
  • mod_log_config: Make ${cookie}C correctly match whole cookie names instead of substrings. PR 28037. [Dan Franklin , Stefan Fritsch]
  • mod_dir, mod_negotiation: Pass the output filter information to newly created sub requests; as these are later on used as true requests with an internal redirect. This allows for mod_cache et.al. to trap the results of the redirect. PR 17629, 43939 [Dirk-Willem van Gulik, Jim Jagielski, Joe Orton, Ruediger Pluem]
  • rotatelogs: Fix possible buffer overflow if admin configures a mongo log file path. [Jeff Trawick]
  • mod_ssl: Do not do overlapping memcpy. PR 45444 [Joe Orton]
  • vhost: A purely-numeric Host: header should not be treated as a port. PR 44979 [Nick Kew]
  • core: (re)-introduce -T commandline option to suppress documentroot check at startup. PR 41887 [Jan van den Berg ]

New in Apache 2.2.16 (Jul 26, 2010)

  • SECURITY: CVE-2010-1452 (cve.mitre.org) mod_dav, mod_cache: Fix Handling of requests without a path segment. PR: 49246 [Mark Drayton, Jeff Trawick]
  • SECURITY: CVE-2010-2068 (cve.mitre.org) mod_proxy_ajp, mod_proxy_http, mod_reqtimeout: Fix timeout detection for platforms Windows, Netware and OS2. PR: 49417. [Rainer Jung]
  • core: Filter init functions are now run strictly once per request before handler invocation. The init functions are no longer run for connection filters. PR 49328. [Joe Orton]
  • mod_filter: enable it to act on non-200 responses. PR 48377 [Nick Kew]
  • mod_ldap: LDAP caching was suppressed (and ldap-status handler returns title page only) when any mod_ldap directives were used in VirtualHost context. [Eric Covener]
  • mod_ssl: Fix segfault at startup if proxy client certs are shared across multiple vhosts. PR 39915. [Joe Orton]
  • mod_proxy_http: Log the port of the remote server in various messages. PR 48812. [Igor Galić ]
  • apxs: Fix -A and -a options to ignore whitespace in httpd.conf [Philip M. Gollucci]
  • mod_dir: add FallbackResource directive, to enable admin to specify an action to happen when a URL maps to no file, without resorting to ErrorDocument or mod_rewrite. PR 47184 [Nick Kew]
  • mod_rewrite: Allow to set environment variables without explicitely giving a value. [Rainer Jung]

New in Apache 2.3.6 (Jun 21, 2010)

  • SECURITY: CVE-2009-3555 (cve.mitre.org) mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection attack when compiled against OpenSSL version 0.9.8m or later. Introduces the 'SSLInsecureRenegotiation' directive to reopen this vulnerability and offer unsafe legacy renegotiation with clients which do not yet support the new secure renegotiation protocol, RFC 5746. [Joe Orton, and with thanks to the OpenSSL Team]
  • SECURITY: CVE-2009-3555 (cve.mitre.org) mod_ssl: A partial fix for the TLS renegotiation prefix injection attack by rejecting any client-initiated renegotiations. Forcibly disable keepalive for the connection if there is any buffered data readable. Any configuration which requires renegotiation for per-directory/location access control is still vulnerable, unless using OpenSSL >= 0.9.8l. [Joe Orton, Ruediger Pluem, Hartmut Keil ]
  • SECURITY: CVE-2010-0408 (cve.mitre.org) mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent when request headers indicate a request body is incoming; not a case of HTTP_INTERNAL_SERVER_ERROR. [Niku Toivola ]
  • SECURITY: CVE-2010-0425 (cve.mitre.org) mod_isapi: Do not unload an isapi .dll module until the request processing is completed, avoiding orphaned callback pointers. [Brett Gervasoni , Jeff Trawick]
  • core: Filter init functions are now run strictly once per request before handler invocation. The init functions are no longer run for connection filters. PR 49328. [Joe Orton]
  • core: Adjust the output filter chain correctly in an internal redirect from a subrequest, preserving filters from the main request as necessary. PR 17629. [Joe Orton]
  • mod_cache: Explicitly allow cache implementations to cache a 206 Partial Response if they so choose to do so. Previously an attempt to cache a 206 was arbitrarily allowed if the response contained an Expires or Cache-Control header, and arbitrarily denied if both headers were missing. [Graham Leggett]
  • core: Add microsecond timestamp fractions, process id and thread id to the error log. [Rainer Jung]
  • configure: The "most" module set gets build by default. [Rainer Jung]
  • configure: Building dynamic modules (DSO) by default. [Rainer Jung]
  • configure: Fix broken VPATH build when using included APR. [Rainer Jung]
  • mod_session_crypto: Fix configure problem when building with APR 2 and for VPATH builds with included APR. [Rainer Jung]
  • mod_session_crypto: API compatibility with APR 2 crypto and APR Util 1.x crypto. [Rainer Jung]
  • ab: Fix memory leak with -v2 and SSL. PR 49383. [Pavel Kankovsky ]
  • core: Add per-module and per-directory loglevel configuration. Add some more trace logging. mod_rewrite: Replace RewriteLog/RewriteLogLevel with trace log levels. mod_ssl: Replace LogLevelDebugDump with trace log levels. mod_ssl/mod_proxy*: Adjust loglevels to be less verbose at levels info and debug. mod_dumpio: Replace DumpIOLogLevel with trace log levels. [Stefan Fritsch]
  • mod_ldap: LDAP caching was suppressed (and ldap-status handler returns title page only) when any mod_ldap directives were used in VirtualHost context. [Eric Covener]
  • mod_disk_cache: Decline the opportunity to cache if the response is a 206 Partial Content. This stops a reverse proxied partial response from becoming cached, and then being served in subsequent responses. [Graham Leggett]
  • mod_deflate: avoid the risk of forwarding data before headers are set. PR 49369 [Matthew Steele ]
  • mod_authnz_ldap: Ensure nested groups are checked when the top-level group doesn't have any direct non-group members of attributes in AuthLDAPGroupAttribute. [Eric Covener]
  • mod_authnz_ldap: Search or Comparison during authorization phase can use the credentials from the authentication phase (AuthLDAPSearchAsUSer,AuthLDAPCompareAsUser). PR 48340 [Domenico Rotiroti, Eric Covener]
  • mod_authnz_ldap: Allow the initial DN search during authentication to use the HTTP username/pass instead of an anonymous or hard-coded LDAP id (AuthLDAPInitialBindAsUser, AuthLDAPInitialBindPattern). [Eric Covener]
  • mod_authnz_ldap: Publish requested LDAP data with an AUTHORIZE_ prefix when this module is used for authorization. See AuthLDAPAuthorizePrefix. PR 45584 [Eric Covener]
  • apxs -q: Stop filtering out ':' characters from the reported values. PR 45343. [Bill Cole]
  • prefork MPM: Run cleanups for final request when process exits gracefully. PR 43857. [Tom Donovan]
  • ab: fix number of requests sent by ab when keepalive is enabled. PR 48497. [Bryn Dole ]
  • Log an error for failures to read a chunk-size, and return 408 instead of 413 when this is due to a read timeout. This change also fixes some cases of two error documents being sent in the response for the same scenario. [Eric Covener] PR49167
  • mod_proxy_balancer: Add new directive BalancerNonce to allow admin to control/set the nonce used in the balancer-manager application. [Jim Jagielski]
  • mod_proxy_connect: Support port ranges in AllowConnect. PR 23673. [Stefan Fritsch]
  • Proxy balancer: support setting error status according to HTTP response code from a backend. PR 48939. [Daniel Ruggeri ]
  • htcacheclean: Introduce the ability to clean specific URLs from the cache, if provided as an optional parameter on the command line. [Graham Leggett]
  • core: Introduce the IncludeStrict directive, which explicitly fails server startup if no files or directories match a wildcard path. [Graham Leggett]
  • htcacheclean: Report additional statistics about entries deleted. PR 48944. [Mark Drayton mark markdrayton.info]
  • Introduce SSLFIPS directive to support OpenSSL FIPS_mode; permits all builds of mod_ssl to use 'SSLFIPS off' for portability, but the proper build of openssl is required for 'SSLFIPS on'. PR 46270. [Dr Stephen Henson , William Rowe]
  • mod_proxy_http: Log the port of the remote server in various messages. PR 48812. [Igor Galić ]
  • mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend connections and other protocol handlers (like mod_ftp). [Stefan Fritsch]
  • mod_proxy_ajp: Really regard the operation a success, when the client aborted the connection. In addition adjust the log message if the client aborted the connection. [Ruediger Pluem]
  • mod_ssl: Add the 'SSLInsecureRenegotiation' directive, which allows insecure renegotiation with clients which do not yet support the secure renegotiation protocol. [Joe Orton]
  • mod_ssl: Fix a potential I/O hang if a long list of trusted CAs is configured for client cert auth. PR 46952. [Joe Orton]
  • core: Only log a 408 if it is no keepalive timeout. PR 39785 [Ruediger Pluem, Mark Montague ]
  • support/rotatelogs: Add -L option to create a link to the current log file. PR 48761 [, Dan Poirier]
  • mod_ldap: Update LDAPTrustedClientCert to consistently be a per-directory setting only, matching most of the documentation and examples. PR 46541 [Paul Reder, Eric Covener]
  • mod_ldap: LDAPTrustedClientCert now accepts CA_DER/CA_BASE64 argument types previously allowed only in LDAPTrustedGlobalCert. [Eric Covener]
  • mod_negotiation: Preserve query string over multiviews negotiation. This buglet was fixed for type maps in 2.2.6, but the same issue affected multiviews and was overlooked. PR 33112 [Joergen Thomsen ]
  • mod_ldap: Eliminate a potential crash with multiple LDAPTrustedClientCert when some are not password-protected. [Eric Covener]
  • Fix startup segfault when the Mutex directive is used but no loaded modules use httpd mutexes. PR 48787. [Jeff Trawick]
  • Proxy: get the headers right in a HEAD request with ProxyErrorOverride, by checking for an overridden error before not after going into a catch-all code path. PR 41646. [Nick Kew, Stuart Children]
  • support/rotatelogs: Support the simplest log rotation case, log truncation. Useful when the log is being processed in real time using a command like tail. [Graham Leggett]
  • support/htcacheclean: Teach it how to write a pid file (modelled on httpd's writing of a pid file) so that it becomes possible to run more than one instance of htcacheclean on the same machine. [Graham Leggett]
  • Log command line on startup, so there's a record of command line arguments like -f. PR 48752. [Dan Poirier]
  • Introduce mod_reflector, a handler capable of reflecting POSTed request bodies back within the response through the output filter stack. Can be used to turn an output filter into a web service. [Graham Leggett]
  • mod_proxy_http: Make sure that when an ErrorDocument is served from a reverse proxied URL, that the subrequest respects the status of the original request. This brings the behaviour of proxy_handler in line with default_handler. PR 47106. [Graham Leggett]
  • Support wildcards in both the directory and file components of the path specified by the Include directive. [Graham Leggett]
  • mod_proxy, mod_proxy_http: Support remote https proxies by using HTTP CONNECT. PR 19188. [Philippe Dutrueux , Rainer Jung]
  • apxs: Fix -A and -a options to ignore whitespace in httpd.conf [Philip M. Gollucci]
  • worker: Don't report server has reached MaxClients until it has. Add message when server gets within MinSpareThreads of MaxClients. PR 46996. [Dan Poirier]
  • mod_session: Session expiry was being initialised, but not updated on each session save, resulting in timed out sessions when there should not have been. Fixed. [Graham Leggett]
  • mod_log_config: Add the R option to log the handler used within the request. [Christian Folini ]
  • mod_include: Allow fine control over the removal of Last-Modified and ETag headers within the INCLUDES filter, making it possible to cache responses if desired. Fix the default value of the SSIAccessEnable directive. [Graham Leggett]
  • Add new UnDefine directive to undefine a variable. PR 35350. [Stefan Fritsch]
  • Make ap_pregsub(), used by AliasMatch and friends, use the same syntax for regex backreferences as mod_rewrite and mod_include: Remove the use of '&' as an alias for '$0' and allow to escape any character with a backslash. PR 48351. [Stefan Fritsch]
  • mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the password to UTF-8. PR 45318. [Johannes Müller , Stefan Fritsch]
  • ab: Fix calculation of requests per second in HTML output. PR 48594. [Stefan Fritsch]
  • mod_authnz_ldap: Failures to map a username to a DN, or to check a user password now result in an informational level log entry instead of warning level. [Eric Covener]

New in Apache 2.3.5 Alpha (Mar 8, 2010)

  • Ensure each subrequest has a shallow copy of headers_in so that the parent request headers are not corrupted. Elimiates a problematic optimization in the case of no request body. PR 48359 [Jake Scott, William Rowe, Ruediger Pluem]
  • Turn static function get_server_name_for_url() into public ap_get_server_name_for_url() and use it where appropriate. This fixes mod_rewrite generating invalid URLs for redirects to IPv6 literal addresses. [Stefan Fritsch]
  • mod_ldap: Introduce new config option LDAPTimeout to set the timeout for LDAP operations like bind and search. [Stefan Fritsch]
  • mod_proxy, mod_proxy_ftp: Move ProxyFtpDirCharset from mod_proxy to mod_proxy_ftp. [Takashi Sato]
  • mod_proxy, mod_proxy_connect: Move AllowCONNECT from mod_proxy to mod_proxy_connect. [Takashi Sato]
  • mod_cache: Do an exact match of the keys defined by CacheIgnoreURLSessionIdentifiers against the querystring instead of a partial match. PR 48401.i [Dodou Wang , Ruediger Pluem]
  • mod_proxy_balancer: Fix crash in balancer-manager. [Rainer Jung]
  • Core HTTP: disable keepalive when the Client has sent Expect: 100-continue but we respond directly with a non-100 response. Keepalive here led to data from clients continuing being treated as a new request. PR 47087 [Nick Kew]
  • Core: reject NULLs in request line or request headers. PR 43039 [Nick Kew]
  • Core: (re)-introduce -T commandline option to suppress documentroot check at startup. PR 41887 [Jan van den Berg ]
  • mod_autoindex: support XHTML as equivalent to HTML in IndexOptions, ScanHTMLTitles, ReadmeName, HeaderName PR 48416 [Dmitry Bakshaev , Nick Kew]
  • Proxy: Fix ProxyPassReverse with relative URL Derived (slightly erroneously) from PR 38864 [Nick Kew]
  • mod_headers: align Header Edit with Header Set when used on Content-Type PR 48422 [Cyril Bonté , Nick Kew>]
  • mod_headers: Enable multi-match-and-replace edit option PR 47066 [Nick Kew]
  • mod_filter: enable it to act on non-200 responses. PR 48377 [Nick Kew]

New in Apache 2.2.15 (Mar 6, 2010)

  • SECURITY: CVE-2009-3555 (cve.mitre.org) mod_ssl: A partial fix for the TLS renegotiation prefix injection attack by rejecting any client-initiated renegotiations. Forcibly disable keepalive for the connection if there is any buffered data readable. Any configuration which requires renegotiation for per-directory/location access control is still vulnerable, unless using OpenSSL >= 0.9.8l. [Joe Orton, Ruediger Pluem, Hartmut Keil ]
  • SECURITY: CVE-2010-0408 (cve.mitre.org) mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent when request headers indicate a request body is incoming; not a case of HTTP_INTERNAL_SERVER_ERROR. [Niku Toivola ]
  • SECURITY: CVE-2010-0425 (cve.mitre.org) mod_isapi: Do not unload an isapi .dll module until the request processing is completed, avoiding orphaned callback pointers. [Brett Gervasoni , Jeff Trawick]
  • SECURITY: CVE-2010-0434 (cve.mitre.org) Ensure each subrequest has a shallow copy of headers_in so that the parent request headers are not corrupted. Elimiates a problematic optimization in the case of no request body. PR 48359 [Jake Scott, William Rowe, Ruediger Pluem]
  • mod_reqtimeout: New module to set timeouts and minimum data rates for receiving requests from the client. [Stefan Fritsch]
  • mod_proxy_ajp: Really regard the operation a success, when the client aborted the connection. In addition adjust the log message if the client aborted the connection. [Ruediger Pluem]
  • mod_negotiation: Preserve query string over multiviews negotiation. This buglet was fixed for type maps in 2.2.6, but the same issue affected multiviews and was overlooked. PR 33112 [Joergen Thomsen ]
  • mod_cache: Introduce the thundering herd lock, a mechanism to keep the flood of requests at bay that strike a backend webserver as a cached entity goes stale. [Graham Leggett]
  • mod_proxy_http: Make sure that when an ErrorDocument is served from a reverse proxied URL, that the subrequest respects the status of the original request. This brings the behaviour of proxy_handler in line with default_handler. PR 47106. [Graham Leggett]
  • mod_log_config: Add the R option to log the handler used within the request. [Christian Folini ]
  • mod_include: Allow fine control over the removal of Last-Modified and ETag headers within the INCLUDES filter, making it possible to cache responses if desired. Fix the default value of the SSIAccessEnable directive. [Graham Leggett]
  • mod_ssl: Add the 'SSLInsecureRenegotiation' directive, which allows insecure renegotiation with clients which do not yet support the secure renegotiation protocol. [Joe Orton]
  • mod_ssl: Fix a potential I/O hang if a long list of trusted CAs is configured for client cert auth. PR 46952. [Joe Orton]
  • core: Fix potential memory leaks by making sure to not destroy bucket brigades that have been created by earlier filters. [Stefan Fritsch]
  • mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to try other providers in the case of an LDAP bind failure. PR 46608 [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
  • mod_proxy, mod_proxy_http: Support remote https proxies by using HTTP CONNECT. PR 19188. [Philippe Dutrueux , Rainer Jung]
  • worker: Don't report server has reached MaxClients until it has. Add message when server gets within MinSpareThreads of MaxClients. PR 46996. [Dan Poirier]
  • mod_ssl: When extracting certificate subject/issuer names to the SSL_*_DN_* variables, handle RDNs with duplicate tags by exporting multiple varialables with an "_n" integer suffix. PR 45875. [Joe Orton, Peter Sylvester ]
  • mod_authnz_ldap: Failures to map a username to a DN, or to check a user password now result in an informational level log entry instead of warning level. [Eric Covener]
  • core: Preserve Port information over internal redirects PR 35999 [Jonas Ringh ]
  • mod_filter: fix FilterProvider matching where "dispatch" string doesn't exist. PR 48054 []
  • Build: fix --with-module to work as documented PR 43881 [Gez Saunders ]
  • mod_mime: Make RemoveType override the info from TypesConfig. PR 38330. [Stefan Fritsch]
  • mod_proxy: unable to connect to a backend is SERVICE_UNAVAILABLE, rather than BAD_GATEWAY or (especially) NOT_FOUND. PR 46971 [evanc nortel.com]
  • mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'. [Eric Covener]
  • mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge some cache entries and log a warning. Also increase the default LDAPSharedCacheSize to 500000. This is a more realistic size suitable for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries. PR 46749. [Stefan Fritsch]
  • mod_disk_cache, mod_mem_cache: don't cache incomplete responses, per RFC 2616, 13.8. PR15866. [Dan Poirier]
  • mod_rewrite: Make sure that a hostname:port isn't fully qualified if the request is a CONNECT request. PR 47928 [Bill Zajac ]
  • mod_cache: correctly consider s-maxage in cacheability decisions. [Dan Poirier]
  • core: Return APR_EOF if request body is shorter than the length announced by the client. PR 33098 [ Stefan Fritsch ]
  • mod_rewrite: Add scgi scheme detection. [André Malo]
  • mod_mime: Detect invalid use of MultiviewsMatch inside Location and LocationMatch sections. PR 47754. [Dan Poirier]
  • ab, mod_ssl: Restore compatibility with OpenSSL < 0.9.7g. [Guenter Knauf]

New in Apache 2.3.4 Alpha (Nov 26, 2009)

  • Replace AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex, and WatchdogMutexPath with a single Mutex directive. Add APIs to simplify setup and user customization of APR proc and global mutexes. (See util_mutex.h.) Build-time setting DEFAULT_LOCKFILE is no longer respected; set DEFAULT_REL_RUNTIMEDIR instead. [Jeff Trawick]
  • http_core: KeepAlive no longer accepts other than On|Off. [Takashi Sato]
  • mod_dav: Remove errno from dav_error interface. Calls to dav_new_error() and dav_new_error_tag() must be adjusted to add an apr_status_t parameter. [Jeff Trawick]
  • mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to try other providers in the case of an LDAP bind failure. PR 46608 [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
  • Build: fix --with-module to work as documented PR 43881 [Gez Saunders ]

New in Apache 2.2.14 (Oct 5, 2009)

  • SECURITY: CVE-2009-2699 (cve.mitre.org) Fixed in APR 1.3.9. Faulty error handling in the Solaris pollset support (Event Port backend) which could trigger hangs in the prefork and event MPMs on that platform. PR 47645. [Jeff Trawick]
  • SECURITY: CVE-2009-3095 (cve.mitre.org) mod_proxy_ftp: sanity check authn credentials. [Stefan Fritsch , Joe Orton]
  • SECURITY: CVE-2009-3094 (cve.mitre.org) mod_proxy_ftp: NULL pointer dereference on error paths. [Stefan Fritsch , Joe Orton]
  • mod_proxy_scgi: Backport from trunk. [André Malo]
  • mod_ldap: Don't try to resolve file-based user ids to a DN when AuthLDAPURL has been defined at a very high level. PR 45946. [Eric Covener]
  • htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett]
  • mod_ldap: Bring the LDAPCacheEntries and LDAPOpCacheEntries usage() in synch with the manual and the implementation (0 and -1 both disable the cache). [Eric Covener]
  • mod_ssl: The error message when SSLCertificateFile is missing should at least give the name or position of the problematic virtual host definition. [Stefan Fritsch sf sfritsch.de]
  • htdbm: Fix possible buffer overflow if dbm database has very long values. PR 30586 [Dan Poirier]
  • Add support for HTTP PUT to ab. [Jeff Barnes ]
  • mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute type. PR 45107. [Michael Ströder , Peter Sylvester ]
  • mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore defined session identifiers encoded in the URL when caching. [Ruediger Pluem]
  • mod_mem_cache: fix seg fault under load due to pool concurrency problem PR: 47672 [Dan Poirier ]
  • mod_autoindex: Correctly create an empty cell if the description for a file is missing. PR 47682 [Peter Poeml ]

New in Apache 2.2.13 (Aug 10, 2009)

  • SECURITY: CVE-2009-2412 (cve.mitre.org). Distributed with APR 1.3.8 and APR-util 1.3.9 to fix potential overflowin pools and rmm, where size alignment was taking place.[Matt Lewis , Sander Striker]
  • mod_ssl, ab: improve compatibility with OpenSSL 1.0.0 betas. Reportwarnings compiling mod_ssl against OpenSSL to the httpd developers.[Guenter Knauf]
  • mod_cgid: Do not add an empty argument when calling the CGI script.PR 46380 [Ruediger Pluem]
  • Fix potential segfaults with use of the legacy ap_rputs() etcinterfaces, in cases where an output filter fails. PR 36780.[Joe Orton]

New in Apache 2.2.12 (Jul 28, 2009)

  • SECURITY: CVE-2009-1891 (cve.mitre.org) Fix a potential Denial-of-Service attack against mod_deflate or other modules, by forcing the server to consume CPU time in compressing a large file after a client disconnects. PR 39605. [Joe Orton, Ruediger Pluem]
  • SECURITY: CVE-2009-1195 (cve.mitre.org) Prevent the "Includes" Option from being enabled in an .htaccess file if the AllowOverride restrictions do not permit it. [Jonathan Peatfield , Joe Orton, Ruediger Pluem, Jeff Trawick]
  • SECURITY: CVE-2009-1890 (cve.mitre.org) Fix a potential Denial-of-Service attack against mod_proxy in a reverse proxy configuration, where a remote attacker can force a proxy process to consume CPU time indefinitely. [Nick Kew, Joe Orton]
  • SECURITY: CVE-2009-1191 (cve.mitre.org) mod_proxy_ajp: Avoid delivering content from a previous request which failed to send a request body. PR 46949 [Ruediger Pluem]
  • SECURITY: CVE-2009-0023, CVE-2009-1955, CVE-2009-1956 (cve.mitre.org) The bundled copy of the APR-util library has been updated, fixing three different security issues which may affect particular configurations and third-party modules.
  • mod_include: fix potential segfault when handling back references on an empty SSI variable. [Ruediger Pluem, Lars Eilebrecht, Nick Kew]
  • mod_alias: check sanity in Redirect arguments. PR 44729 [Sönke Tesch , Jim Jagielski]
  • mod_proxy_http: fix Host: header for literal IPv6 addresses. PR 47177 [Carlos Garcia Braschi ]
  • mod_rewrite: Remove locking for writing to the rewritelog. PR 46942
  • mod_alias: Ensure Redirect emits HTTP-compliant URLs. PR 44020
  • mod_proxy_http: fix case sensitivity checking transfer encoding PR 47383 [Ryuzo Yamamoto ]
  • mod_rewrite: Fix the error string returned by RewriteRule. RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd argument of RewriteRule was not started with "[" or not ended with "]". PR 45082 [Vitaly Polonetsky ]
  • mod_proxy: Complete ProxyPassReverse to handle balancer URL's. Given; BalancerMember balancer://alias http://example.com/foo ProxyPassReverse /bash balancer://alias/bar backend url http://example.com/foo/bar/that is now translated /bash/that [William Rowe]
  • New piped log syntax: Use "||process args" to launch the given process without invoking the shell/command interpreter. Use "|$command line" (the default behavior of "|command line" in 2.2) to invoke using shell, consuming an additional shell process for the lifetime of the logging pipe program but granting additional process invocation flexibility. [William Rowe]
  • mod_ssl: Add server name indication support (RFC 4366) and better support for name based virtual hosts with SSL. PR 34607 [Peter Sylvester , Kaspar Brand , Guenter Knauf, Joe Orton, Ruediger Pluem]
  • mod_negotiation: Escape pathes of filenames in 406 responses to avoid HTML injections and HTTP response splitting. PR 46837. [Geoff Keating ]
  • mod_include: Prevent a case of SSI timefmt-smashing with filter chains including multiple INCLUDES filters. PR 39369 [Joe Orton]
  • mod_rewrite: When evaluating a proxy rule in directory context, do escape the filename by default. PR 46428 [Joe Orton]
  • mod_proxy_ajp: Check more strictly that the backend follows the AJP protocol. [Mladen Turk]
  • mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives to enable stricter checking of remote server certificates. [Ruediger Pluem]
  • mod_substitute: Fix a memory leak. PR 44948 [Dan Poirier ]
  • mod_proxy_ajp: Forward remote port information by default. [Rainer Jung]
  • mod_disk_cache/mod_mem_cache: Fix handling of CacheIgnoreHeaders directive to correctly remove headers before storing them. [Lars Eilebrecht]
  • mod_deflate: revert changes in 2.2.8 that caused an invalid etag to be emitted for on-the-fly gzip content-encoding. PR 39727 will require larger fixes and this fix was far more harmful than the original code. PR 45023. [Roy T. Fielding]
  • mod_disk_cache: The module now turns off sendfile support if 'EnableSendfile off' is defined globally. PR 41218. [Lars Eilebrecht, Issac Goldstand]
  • prefork: Fix child process hang during graceful restart/stop in configurations with multiple listening sockets. PR 42829. [Joe Orton, Jeff Trawick]
  • mod_ssl: Add SSLRenegBufferSize directive to allow changing the size of the buffer used for the request-body where necessary during a per-dir renegotiation. PR 39243. [Joe Orton]
  • mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome way that per-directory rewrites append the previous notion of PATH_INFO to each substitution before evaluating subsequent rules. PR38642 [Eric Covener]
  • mod_authnz_ldap: Reduce number of initialization debug messages and make information more clear. PR 46342 [Dan Poirier]
  • mod_cache: Introduce 'no-cache' per-request environment variable to prevent the saving of an otherwise cacheable response. [Eric Covener]
  • core: Translate the status line to ASCII on EBCDIC platforms in ap_send_interim_response() and for locally generated "100 Continue" responses. [Eric Covener]
  • CGI: return 504 (Gateway timeout) rather than 500 when a script times out before returning status line/headers. PR 42190 [Nick Kew]
  • prefork: Log an error instead of segfaulting when child startup fails due to pollset creation failures. PR 46467. [Jeff Trawick]
  • mod_ext_filter: fix error handling when the filter prog fails to start, and introduce an onfail configuration option to abort the request or to remove the broken filter and continue. PR 41120 [Nick Kew]
  • mod_include: support generating non-ASCII characters as entities in SSI PR 25202 [Nick Kew]
  • core/utils: Enhance ap_escape_html API to support escaping non-ASCII chars [Nick Kew]
  • mod_rewrite: fix "B" flag breakage by reverting r589343 PR 45529 [Bob Ionescu ]
  • mod_cgid: fix segfault problem on solaris. PR 39332 [Masaoki Kobayashi , Jeff Trawick]
  • mod_ldap: Avoid a segfault when result->rc is checked in uldap_connection_init when result is NULL. This could happen if LDAP initialization failed. PR 45994. [Dan Poirier ]
  • Set Listen protocol to "https" if port is set to 443 and no proto is specified (as documented but not implemented). PR 46066 [Dan Poirier ]
  • mod_cache: Correctly save Content-Encoding of cachable entity. PR 46401 [Dan Poirier ]
  • Output -M and -S dumps (modules and vhosts) to stdout instead of stderr. PR 42571 and PR 44266 (dup). [Dan Poirier ]
  • mod_cache: When an explicit Expires or Cache-Control header is set, cache normally non-cacheable response statuses. PR 46346. [Alex Polvi ]

New in Apache 2.2.11 (Dec 15, 2008)

  • core: When the ap_http_header_filter processes an error bucket, cleanup the passed brigade before returning AP_FILTER_ERROR down the filter chain. This unambiguously ensures the same error bucket isn't revisited [Ruediger Pluem]
  • core: Error responses set by filters were being coerced into 500 errors, sometimes appended to the original error response. Log entry of: 'Handler for (null) returned invalid result code -3' [Eric Covener]
  • configure: Don't reject libtool 2.x PR 44817 [Arfrever Frehtes Taifersar Arahesis ]
  • mod_autoindex: add configuration option to insert string in HTML HEAD (IndexHeadInsert). [Nick Kew]
  • Add new LogFormat parameter, %k, which logs the number of keepalive requests on this connection for this request. PR 45762 [Dan Poirier , Jim Jagielski]
  • Export and install the mod_rewrite.h header to ensure the optional rewrite_mapfunc_t and ap_register_rewrite_mapfunc functions are available to third party modules. [Graham Leggett]
  • mod_cache: Convert age of cached object to seconds before comparing it to age supplied by the request when checking whether to send a Warning header for a stale response. PR 39713. [Owen Taylor ]
  • Build: Correctly set SSL_LIBS during openssl detection if pkgconfig is not available. PR 46018 [Ruediger Pluem]
  • mod_proxy_ajp: Do not fail if response data is sent before all request data is read. PR 45911 [Ruediger Pluem]
  • mod_proxy_balancer: Add in forced recovery for balancer members if all are in error state. [Mladen Turk]
  • mod_proxy: Prevent segmentation faults by correctly adjusting the lifetime of the buckets read from the proxy backend. PR 45792 [Ruediger Pluem]
  • mod_expires: Do not sets negative max-age / Expires header in the past. PR 39774 [Jim Jagielski]
  • mod_info: Was displaying the wrong value for the KeepAliveTimeout value. [Jim Jagielski]
  • mod_proxy_ajp: Fix wrongly formatted requests where client sets Content-Length header, but doesn't provide a body. Servlet container always expects that next packet is body whenever C-L is present in the headers. This can lead to wrong interpretation of the packets. In this case send the empty body packet, so container can deal with that. [Mladen Turk]
  • core: Add ap_timeout_parameter_parse to public API. [Ruediger Pluem]
  • mod_proxy: Add the possibility to set the worker parameters connectiontimeout and ping in milliseconds. [Ruediger Pluem]
  • Worker MPM: Crosscheck that idle workers are still available before using them and thus preventing an overflow of the worker queue which causes a SegFault. PR 45605 [Denis Ustimenko ]
  • Windows: Always build the odbc dbd driver on windows, to be consistent with the apr-util default. [Tom Donovan]

New in Apache 2.2.10 (Oct 16, 2008)

  • SECURITY: CVE-2008-2939 (cve.mitre.org) mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of the FTP URL. Discovered by Marc Bevand of Rapid7. [Ruediger Pluem]
  • Allow for smax to be 0 for balancer members so that all idle connections are able to be dropped should they exceed ttl. PR 43371 [Phil Endecott , Jim Jagielski]
  • mod_proxy_http: Don't trigger a retry by the client if a failure to read the response line was the result of a timeout. [Adam Woodworth ]
  • Support chroot on Unix-family platforms PR 43596 [Dimitar Pashev ]
  • mod_ssl: implement dynamic mutex callbacks for the benefit of OpenSSL. [Sander Temme]
  • mod_proxy_balancer: Add 'bybusyness' load balance method. [Joel Gluth , Jim Jagielski]
  • mod_authn_alias: Detect during startup when AuthDigestProvider is configured to use an incompatible provider via AuthnProviderAlias. PR 45196 [Eric Covener]
  • mod_proxy: Add 'scolonpathdelim' parameter to allow for ';' to also be used as a session path separator/delim PR 45158. [Jim Jagielski]
  • mod_charset_lite: Avoid dropping error responses by handling meta buckets correctly. PR 45687 [Dan Poirier ]
  • mod_proxy_http: Introduce environment variable proxy-initial-not-pooled to avoid reusing pooled connections if the client connection is an initial connection. PR 37770. [Ruediger Pluem]
  • mod_rewrite: Allow Cookie option to set secure and HttpOnly flags. PR 44799 [Christian Wenz ]
  • mod_ssl: Rewrite shmcb to avoid memory alignment issues. PR 42101. [Geoff Thorpe]
  • mod_proxy: Add connectiontimeout parameter for proxy workers in order to be able to set the timeout for connecting to the backend separately. PR 45445. [Ruediger Pluem, rahul ]
  • mod_dav_fs: Retrieve minimal system information about directory entries when walking a DAV fs, resolving a performance degradation on Windows. PR 45464. [Joe Orton, Jeff Trawick]
  • mod_cgid: Pass along empty command line arguments from an ISINDEX query that has consecutive '+' characters in the QUERY_STRING, matching the behavior of mod_cgi. [Eric Covener]
  • mod_headers: Prevent Header edit from processing only the first header of possibly multiple headers with the same name and deleting the remaining ones. PR 45333. [Ruediger Pluem]
  • mod_proxy_balancer: Move nonce field in the balancer manager page inside the html form where it belongs. PR 45578. [Ruediger Pluem]
  • mod_proxy_http: Do not forward requests with 'Expect: 100-continue' to known HTTP/1.0 servers. Return 'Expectation failed' (417) instead. [Ruediger Pluem]
  • mod_rewrite: Preserve the query string when [proxy,noescape]. PR 45247. [Tom Donovan]

New in Apache 2.2.9 (Jun 16, 2008)

  • SECURITY: CVE-2008-2364 (cve.mitre.org)
  • mod_proxy_http: Better handling of excessive interim responses from origin server to prevent potential denial of service and high memory usage. Reported by Ryujiro Shibuya. [Ruediger Pluem, Joe Orton, Jim Jagielski]
  • SECURITY: CVE-2007-6420 (cve.mitre.org) mod_proxy_balancer: Prevent CSRF attacks against the balancer-manager interface. [Joe Orton]
  • core: Fix address-in-use startup failure on some platforms caused by creating an IPv4 listener which overlaps with an existing IPv6 listener. [Jeff Trawick]
  • mod_proxy: Make all proxy modules nocanon aware and do not add the query string again in this case. PR 44803. [Jim Jagielski, Ruediger Pluem]
  • mod_unique_id: Fix timestamp value in UNIQUE_ID. PR 37064 [Kobayashi ]
  • htpasswd: Fix salt generation weakness. PR 31440 [Andreas Krennmair , Peter Watkins , Paul Querna]
  • core: Add the filename of the configuration file to the warning message about the useless use of AllowOverride. PR 39992. [Darryl Miles ]
  • scoreboard: Remove unused proxy load balancer elements from scoreboard image (not scoreboard memory itself). [Chris Darroch]
  • mod_proxy: Support environment variable interpolation in reverse proxying directives. [Nick Kew]
  • suexec: When group is given as a numeric gid, validate it by looking up the actual group name such that the name can be used in log entries. PR 7862 [, Leif W ]
  • Fix garbled TRACE response on EBCDIC platforms. [David Jones ]
  • ab: Include earlier if available since we may need INT_MAX (defined there on Windows) for the definition of MAX_REQUESTS. PR 45024 [Ruediger Pluem]
  • ab: Improve client performance by clearing connection pool instead of destroying it. PR 40054 [Brad Roberts ]
  • ab: Don't stop sending a request if EAGAIN is returned, which will only happen if both the write and subsequent wait are returning EAGAIN, and count posted bytes correctly when the initial write of a request is not complete. PR 10038, 38861, 39679 [Patrick McManus , Stefan Fleiter , Davanum Srinivas, Roy T. Fielding]
  • ab: Overhaul stats collection and reporting to avoid integer truncation and time divisions within the test loop, retain native time resolution until output, remove unused data, consistently round milliseconds, and generally avoid losing accuracy of calculation due to type casts. PR 44878, 44931. [Roy T. Fielding]
  • ab: Add -r option to continue after socket receive errors. [Filip Hanik ]
  • core: Do not allow Options ALL if not all options are allowed to be overwritten. PR 44262 [Micha�� Grz�dzicki ]
  • mod_cache: Handle If-Range correctly if the cached resource was stale.
  • mod_proxy: Do not try a direct connection if the connection via a remote proxy failed before and the request has a request body.
  • mod_proxy_ajp: Do not retry request in the case that we either failed to sent a part of the request body or if the request is not idempotent.
  • mod_rewrite: Initialize hash needed by ap_register_rewrite_mapfunc early enough. PR 44641 [Daniel Lescohier ]
  • mod_dav: Return "method not allowed" if the destination URI of a WebDAV copy / move operation is no DAV resource. PR 44734 [Ruediger Pluem]
  • http_filters: Don't return 100-continue on redirects. PR 43711 [Ruediger Pluem]
  • mod_ssl: Fix a memory leak with connections that have zlib compression turned on. PR 44975 [Joe Orton, Amund Elstad , Dr Stephen Henson ]
  • mod_proxy: Trigger a retry by the client in the case we fail to read the response line from the backend by closing the connection to the client. PR 37770 [Ruediger Pluem]
  • gen_test_char: add double-quote to the list of T_HTTP_TOKEN_STOP. PR 9727 [Ville Skytt ]
  • core: reinstate location walk to fix config for subrequests
  • rotatelogs: Log the current file size and error code/description when failing to write to the log file. [Jeff Trawick]
  • rotatelogs: Added '-f' option to force rotatelogs to create the logfile as soon as started, and not wait until it reads the first entry. [Jim Jagielski]
  • rotatelogs: Don't leak memory when reopening the logfile. PR 40183 [Ruediger Pluem, Takashi Sato ]
  • rotatelogs: Improve atomicity when using -l and cleaup code. PR 44004 [Rainer Jung]
  • mod_authn_dbd: Disambiguate and tidy database authentication error messages. PR 43210. [Chris Darroch, Phil Endecott ]
  • mod_headers: Add 'merge' option to avoid duplicate values within the same header. [Chris Darroch]
  • mod_cgid: Explicitly set permissions of the socket (ScriptSock) shared by mod_cgid and request processing threads, for OS'es such as HPUX and AIX that do not use umask for AF_UNIX socket permissions. [Eric Covener, Jeff Trawick]
  • mod_cgid: Don't try to restart the daemon if it fails to initialize the socket. [Jeff Trawick]
  • mod_log_config: Add format options for %p so that the actual local or remote port can be logged. PR 43415. [Adam Hasselbalch Hansen , Ruediger Pluem, Jeff Trawick]
  • Added 'disablereuse' option for ProxyPass which, essentially, disables connection pooling for the backend servers. [Jim Jagielski]
  • mod_speling: remove regression from 1.3/2.0 behavior and drop dependency between mod_speling and AcceptPathInfo. PR 43562 [Jose Kahan ]
  • mod_substitute: The default is now flattening the buckets after each substitution. The newly added 'q' flag allows for the quicker, more efficient bucket-splitting if the user so desires. [Jim Jagielski]
  • http_filters: Don't spin if get an error when reading the next chunk. PR 44381 [Ruediger Pluem]
  • http_filters: Don't return 100-continue on client error PR 43711 [Chetan Reddy ]
  • mod_charset_lite: Add TranslateAllMimeTypes sub-option to CharsetOptions, allowing the administrator to skip the mimetype checking that precedes translation. PR 44458 [Eric Covener]
  • mod_proxy_http: Fix processing of chunked responses if Connection: Transfer-Encoding is set in the response of the proxied system. PR 44311 [Ruediger Pluem]
  • mod_proxy_http: Return HTTP status codes instead of apr_status_t values for errors encountered while forwarding the request body PR 44165 [Eric Covener]
  • mod_rewrite: Don't canonicalise URLs with [P,NE] PR 43319 []

New in Apache 2.2.8 (Jan 22, 2008)

  • Fix regression in 2.2.7 in chunk filtering with massively chunked requests.
  • Resolve modperl issues by redirecting console mode stdout to /Device/Nul as the server is starting up, mirroring unix MPM's.Restore Win32DisableAcceptEx On directive and Win9x platform by recreating the bucket allocator each time the trans pool is cleared.
  • Fix evaluation of If-Match * and If-None-Match * conditionals.

New in Apache 2.2.6 (Sep 13, 2007)

  • Prevent reading past the end of a buffer when parsing date-related headers. PR 41144.
  • Prevent a segmentation fault if attributes are listed in a Cache-Control header without any value.
  • Ensure that the parent process cannot be forced to kill processes outside its process group.
  • Fix a possible XSS attack against a site with a public server-status page and ExtendedStatus enabled, for browsers which perform charset "detection".
  • Copy headers into longer lived storage; header names and values could previously point to cleaned up storage. PR 41551.
  • mod_info outputs invalid XHTML 1.0 transitional.
  • Fix spurious hostname mismatch warning for valid wildcard certificates.
  • Increase the minimum and default value for MCacheMinObjectSize from 0 to 1, as a MCacheMinObjectSize of 0 does not make sense and leads to a division by zero. PR 40576.
  • Remove expired content from cache that cannot be revalidated.
  • accept proxy-sendchunked/proxy-sendchunks as synonymous.