]> granicus.if.org Git - apache/blob - CHANGES
CHANGES: Follow up to r1657636, clarify message.
[apache] / CHANGES
1                                                          -*- coding: utf-8 -*-
2 Changes with Apache 2.5.0
3
4   *) SECURITY: CVE-2015-0228 (cve.mitre.org)
5      mod_lua: A maliciously crafted websockets PING after a script
6      calls r:wsupgrade() can cause a child process crash. 
7      [Edward Lu <Chaosed0 gmail.com>]
8
9   *) mod_proxy_connect/wstunnel: If both client and backend sides get readable
10      at the same time, don't lose errors occuring while forwarding on the first
11      side when none occurs next on the other side, and abort.  [Yann Ylavic]
12
13   *) mod_lua: After a r:wsupgrade(), mod_lua was not properly
14      responding to a websockets PING but instead invoking the specified 
15      script. PR57524. [Edward Lu <Chaosed0 gmail.com>]
16
17   *) mod_macro: Clear macros before initialization to avoid use-after-free
18      on startup or restart when the module is linked statically. PR 57525
19      [apache.org tech.futurequest.net, Yann Ylavic]
20
21   *) mod_proxy_http: Don't establish or reuse a backend connection before pre-
22      fetching the request body, so to minimize the delay between it is supposed
23      to be alive and the first bytes sent: this is a best effort to prevent the
24      backend from closing because of idle or keepalive timeout in the meantime.
25      Also, handle a new "proxy-flushall" environment variable which allows to
26      flush any forwarded body data immediately. PR 56541+37920. [Yann Ylavic]
27
28   *) core: Define and UnDefine are no longer permitted in
29      directory context. Previously they would always be evaulated
30      as the configuration was read without regard for the directory
31      context. [Eric Covener]
32
33   *) config: For directives that do not expect any arguments, enforce
34      that none are specified in the configuration file. 
35      [Joachim Zobel <jzobel heute-morgen.de>, Eric Covener]
36
37   *) mod_ssl: 'SSLProtocol ALL' was being ignored in virtual host context. 
38      PR 57100.  [Michael Kaufmann <apache-bugzilla michael-kaufmann.ch>,
39      Yann Ylavic]
40
41   *) mod_alias: Introduce expression parser support for Alias, ScriptAlias
42      and Redirect. [Graham Leggett]
43
44   *) mod_rewrite: Improve 'bad flag delimeters' startup error by showing
45      how the input was tokenized.  PR 56528. [Edward Lu <Chaosed0 gmail.com>]
46
47   *) mod_ssl: Add support for extracting subjectAltName entries of type
48      rfc822Name and dNSName into SSL_{CLIENT,SERVER}_SAN_{Email,DNS}_n
49      environment variables. Also addresses PR 57207. [Kaspar Brand]
50
51   *) mod_proxy: Don't put non balancer-member workers in error state by
52      default for connection or 500/503 errors, and honor status=+I for
53      any error.  PR 48388.  [Yann Ylavic]
54
55   *) mod_socache_memcache: Pass expiration time through to memcached. PR 55445.
56      [Faidon Liambotis <paravoid debian.org>, Joe Orton]
57
58   *) split-logfile: Fix perl error:  'Can't use string ("example.org:80") 
59      as a symbol ref while "strict refs"'. PR 56329.
60      [Holger Mauermann <mauermann gmail.com>]
61
62   *) mod_proxy_fcgi: Enable opt-in to TCP connection reuse by explicitly
63      setting proxy option disablereuse=off. [Eric Covener] PR 57378.
64  
65   *) mod_http: Fix incorrect If-Match handling. PR 57358.
66      [Kunihiko Sakamoto <ksakamoto google.com>]
67
68   *) mod_ssl: Fix renegotiation failures redirected to an ErrorDocument.
69      PR 57334.  [Yann Ylavic].
70
71   *) core: Fix -D[efined] or <Define>[d] variables lifetime accross restarts. 
72      PR 57328.  [Armin Abfalterer <a.abfalterer gmail.com>, Yann Ylavic].
73
74   *) mod_proxy_ajp: Fix client connection errors handling and logged status
75      when it occurs.  PR 56823.  [Yann Ylavic]
76
77   *) ap_expr: Add filemod function for checking file modification dates
78      [Daniel Gruno]
79      
80   *) core: Add CGIPassAuth directive to control whether HTTP authorization
81      headers are passed to scripts as CGI variables.  PR 56855.  [Jeff 
82      Trawick]
83
84   *) mod_rewrite: Improve relative substitutions in per-directory/htaccess
85      context for directories found by mod_userdir and mod_alias.  These no
86      longer require RewriteBase to be specified. [Eric Covener]
87
88   *) mod_authnz_ldap: Resolve crashes with LDAP authz and non-LDAP authn since 
89      r1608202. [Eric Covener]
90  
91   *) core: Support custom ErrorDocuments for HTTP 501 and 414 status codes.
92      PR 57167 [Edward Lu <Chaosed0 gmail.com>]
93
94   *) mod_proxy_connect: Don't issue AH02447 on sockets hangups, let the read
95      determine whether it is a normal close or a real error. PR 57168. [Yann
96      Ylavic]
97
98   *) mod_buffer: Forward flushed input data immediatly and avoid (unlikely)
99      access to freed memory. [Yann Ylavic, Christophe Jaillet]
100
101   *) mod_proxy: Use the correct server name for SNI in case the backend
102      SSL connection itself is established via a proxy server.
103      PR 57139 [Szabolcs Gyurko <szabolcs gyurko.org>]
104
105   *) core: Ensure that httpd exits with an error status when the MPM fails
106      to run.  [Yann Ylavic]
107
108   *) apreq: Content-Length header should be always interpreted as a decimal.
109      Leading 0 could be erroneously considered as an octal value. PR 56598.
110      [Chris Card <ctcard hotmail com>]
111   
112   *) mod_proxy: Now allow for 191 character worker names, with non-fatal
113      errors if name is truncated. PR53218. [Jim Jagielski]
114
115   *) mod_ssl: Add optional function "ssl_get_tls_cb" to allow support
116      for channel bindings.  [Simo Sorce <simo redhat.com>]
117
118   *) mod_proxy_wstunnel: Concurrent websockets messages could be 
119      lost or delayed with ProxyWebsocketAsync enabled.  
120      [Edward Lu <Chaosed0 gmail.com>]
121
122   *) core, mod_info: Add compiled and loaded PCRE versions to version
123      number display.  [Rainer Jung]
124
125   *) mpm_winnt: Accept utf-8 (Unicode) service names and descriptions for
126      internationalization.  [William Rowe]
127
128   *) mpm_winnt: Normalize the error and status messages emitted by service.c,
129      the service control interface for Windows.  [William Rowe]
130   
131   *) mod_authnz_ldap: Return LDAP connections to the pool before the handler
132      is run, instead of waiting until the end of the request. [Eric Covener]
133
134   *) mod_ldap: Be more conservative with the last-used time for
135      LDAPConnectionPoolTTL. PR54587 [Eric Covener]
136
137   *) mod_deflate: Don't fail when flushing inflated data to the user-agent
138      and that coincides with the end of stream ("Zlib error flushing inflate
139      buffer"). PR 56196. [Christoph Fausak <christoph fausak glueckkanja.com>]
140
141   *) mod_proxy: Don't limit the size of the connectable Unix Domain Socket
142      paths. [Christophe Jaillet, Yann Ylavic]
143
144   *) mod_ssl: dump SSL IO/state for the write side of the connection(s),
145      like reads (level TRACE4). [Yann Ylavic]
146
147   *) mod_proxy: Shutdown (eg. close notify) the backend connection before
148      closing. [Yann Ylavic] 
149
150   *) mpm_event[opt]: Send the SSL close notify alert when the KeepAliveTimeout
151      expires. PR54998. [Yann Ylavic] 
152
153   *) mod_ssl: Ensure that the SSL close notify alert is flushed to the client.
154      PR54998. [Tim Kosse <tim.kosse filezilla-project.org>, Yann Ylavic] 
155
156   *) mod_log_config: Add GlobalLog to allow a globally defined log to
157      be inherited by virtual hosts that define a CustomLog.
158      [Edward Lu <Chaosed0 gmail.com>]
159
160   *) MPMs: Support SO_REUSEPORT to create multiple duplicated listener
161      records for scalability. [Yingqi Lu <yingqi.lu@intel.com>,
162      Jeff Trawick, Jim Jagielski]
163
164   *) mod_proxy_html: support automatic detection of doctype and processing
165      of FPIs.  PR56285 [Micha Lenk <micha lenk info>, Nick Kew]
166
167   *) mod_proxy_html: skip documents shorter than 4 bytes
168      PR 56286 [Micha Lenk <micha lenk info>]
169
170   *) mod_proxy_fdpass: Fix computation of the size of 'struct sockaddr_un'
171      when passed to 'connect()'.
172      [Graham Dumpleton <grahamd apache org>]
173
174   *) core: Add ap_mpm_resume_suspended() API to allow a suspended connection
175      to resume. PR56333 
176      [Artem <artemciy gmail.com>, Edward Lu <Chaosed0 gmail.com>]
177
178   *) core: Add ap_mpm_register_socket_callback_timeout() API. [Eric Covener]
179
180   *) mod_proxy_wstunnel: Honor ProxyWebsocketIdleTimeout in asynchronous
181      processing mode. [Eric Covener]
182
183   *) mod_authnz_ldap: Fail explicitly when the filter is too long. Remove
184      unnecessary apr_pstrdup() and strlen(). [Graham Leggett]
185
186   *) Add the ldap-search option to mod_authnz_ldap, allowing authorization
187      to be based on arbitrary expressions that do not include the username.
188      [Graham Leggett]
189
190   *) Add the ldap function to the expression API, allowing LDAP filters and
191      distinguished names based on expressions to be escaped correctly to
192      guard against LDAP injection. [Graham Leggett]
193
194   *) Add module mod_ssl_ct, which provides an implementation of Certificate
195      Transparency (RFC 6962) for httpd.  [Jeff Trawick]
196
197   *) mod_proxy: Preserve original request headers even if they differ
198      from the ones to be forwarded to the backend. PR 45387.
199      [Yann Ylavic]
200
201   *) mod_remoteip: Prevent an external proxy from presenting an internal
202      proxy. PR 55962. [Mike Rumph]
203
204   *) mod_ssl: Add hooks to allow other modules to perform processing at
205      several stages of initialization and connection handling.  See
206      mod_ssl_openssl.h.  [Jeff Trawick]
207
208   *) mod_proxy_wstunnel: Avoid sending error responses down an upgraded
209      websockets connection as it is being close down. [Eric Covener]
210   
211   *) mod_proxy_wstunnel: Allow the administrator to cap the amount
212      of time a synchronous websockets connection stays idle with 
213      ProxyWebsocketIdleTimeout. [Eric Covener]
214
215   *) mod_proxy_wstunnel: Change to opt-in for asynchronous support, adding 
216      directives ProxyWebsocketAsync and ProxyWebsocketAsyncDelay. 
217      [Eric Covener]
218
219   *) mod_proxy_wstunnel: Stop leaking websockets backend connections under
220      event MPM (trunk-only). [Eric Covener]
221
222   *) mod_proxy_http: Add detach_backend hook (potentially usable
223      in other proxy scheme handlers).  [Jeff Trawick]
224
225   *) mod_deflate: Add DeflateAlterETag to control how the ETag
226      is modified. The 'NoChange' parameter mimics 2.2.x behavior.
227      PR 45023, PR 39727. [Eric Covener]
228
229   *) mod_rewrite: Add 'BNF' (backreferences-no-plus) flag to RewriteRule to 
230      allow spaces in backreferences to be encoded as %20 instead of '+'.
231      [Eric Covener]
232      
233   *) mod_rewrite: Support an optional list of characters to escape in the 
234      argument for the 'B' (escape backreferences) flag. [Eric Covener]
235
236   *) mod_dir: Default to 2.2-like behavior and skip execution when method is
237      neither GET nor POST, such as for DAV requests. PR 54914. [Chris Darroch]
238
239   *) mod_rewrite: Rename the handler that does per-directory internal 
240      redirects to "rewrite-redirect-handler" from "redirect-handler" so
241      it is less ambiguous and less likely to be reused. [Eric Covener]
242
243   *) mod_rewrite: Protect against looping with the [N] flag by enforcing a 
244      default limit of 10000 iterations, and allowing each rule to change its
245      limit. [Eric Covener]
246
247   *) mod_ssl: Fix config merging of SSLOCSPEnable and SSLOCSPOverrideResponder.
248      [Jeff Trawick]
249
250   *) Add HttpContentLengthHeadZero and HttpExpectStrict directives.
251      [Yehuda Sadeh <yehuda inktank com>, Justin Erenkrantz]
252
253   *) mod_ssl: Add -t -DDUMP_CA_CERTS option which dumps the filenames of all
254      configured SSL CA certificates to stdout the same way as DUMP_CERTS does.
255      [Jan Kaluza]
256
257   *) mod_ssl: Don't flush when an EOS is received. Prepares mod_ssl
258      to support write completion. [Graham Leggett]
259
260   *) core: Add parse_errorlog_arg callback to ap_errorlog_provider
261      to allow providers to check the ErrorLog argument. [Jan Kaluza]
262
263   *) mod_cgid: Use the servers Timeout for each read from a CGI script,
264      allow override with new CGIDRequestTimeout directive. PR43494
265      [Eric Covener, Toshikuni Fukaya <toshikuni-fukaya cybozu co jp>]
266
267   *) core: ensure any abnormal exit is reported to stderr if it's a tty.
268      PR 55670 [Nick Kew]
269
270   *) mod_lua: Let the Inter-VM get/set functions work with a global 
271      shared memory pool instead of a per-process pool. [Daniel Gruno]
272
273   *) ldap: Support ldaps when using the Microsoft LDAP SDK.
274      PR 54626. [Jean-Frederic Clere]
275
276   *) mod_proxy: Add ap_connection_reusable() for checking if a connection
277      is reusable as of this point in processing.  [Jeff Trawick]
278
279   *) mod_authnz_ldap: Change default value of AuthLDAPMaxSubGroupDepth to 0
280      to avoid performance problems when subgroups aren't in use. [Eric Covener]
281
282   *) mod_syslog: New module implementing syslog ap_error_log provider.
283      Previously, this code was part of core, now it's in separate module.
284      [Jan Kaluza]
285
286   *) core: Add ap_errorlog_provider to make ErrorLog logging modular. Move
287      syslog support from core to new mod_syslog. [Jan Kaluza]
288
289   *) mod_status, mod_echo: Fix the display of client addresses.
290      They were truncated to 31 characters which is not enough for IPv6 addresses.
291      PR 54848 [Bernhard Schmidt <berni birkenwald de>]
292
293   *) core: Add ap_log_data(), ap_log_rdata(), etc. for logging buffers.
294      [Jeff Trawick]
295
296   *) mod_unique_id: Use output of the PRNG rather than IP address and
297      pid, avoiding sleep() call and possible DNS issues at startup,
298      plus improving randomness for IPv6-only hosts.
299      [Jan Kaluza <jkaluza redhat.com>]
300
301   *) mod_authnz_ldap: Support primitive LDAP servers that do not accept
302      filters, such as "SDBM-backed LDAP" on z/OS, by allowing a special
303      filter "none" to be specified in AuthLDAPURL. [Eric Covener]
304
305   *) mod_file_cache: mod_file_cache should be able to serve files that
306      haven't had a Content-Type set via e.g. mod_mime. [Eric Covener]
307
308   *) core: merge AllowEncodedSlashes from the base configuration into
309      virtual hosts. [Eric Covener]
310
311   *) AIX: Install DSO's with "cp" instead of "install" in instdso.sh
312      [Eric Covener]
313
314   *) mod_ldap: Don't keep retrying if a new LDAP connection times out.
315      [Eric Covener]
316
317   *) mod_deflate: permit compilation of mod_deflate against a zlib that has
318      been configured with -D Z_PREFIX, which redefines the token "deflate".
319      [Eric Covener]
320
321   *) mod_auth_digest: Use the secret when generating nonces in all cases and
322      not only when AuthName is used in .htaccess files (this change may cause
323      problems if used with round robin load balancers). Don't regenerate the
324      secret on graceful restarts. PR 54637  [Stefan Fritsch]
325
326   *) core: Remove apr_brigade_flatten(), buffering and duplicated code
327      from the HTTP_IN filter, parse chunks in a single pass with zero copy.
328      Reduce memory usage by 48 bytes per request. [Graham Leggett]
329
330   *) core: Stop the HTTP_IN filter from attempting to write error buckets
331      to the output filters, which is bogus in the proxy case. Create a
332      clean mapping from APR codes to HTTP status codes, and use it where
333      needed. [Graham Leggett]
334
335   *) mod_proxy: Ensure network errors detected by the proxy are returned as
336      504 Gateway Timout as opposed to 502 Bad Gateway, in order to be
337      compliant with RFC2616 14.9.4 Cache Revalidation and Reload Controls.
338
339   *) mod_dav: mod_dav overrides dav_fs response on PUT failure. PR 35981
340      [Basant Kumar Kukreja <basant.kukreja sun.com>, Alejandro Alvarez
341      <alejandro.alvarez.ayllon cern.ch>]
342
343   *) mod_ldap: LDAP connections used for authentication were not respecting
344      LDAPConnectionPoolTimeout.  PR 54587
345
346   *) core: ap_rgetline_core now pulls from r->proto_input_filters.
347
348   *) mod_proxy_html: process parsed comments immediately. 
349      Fixes bug where parsed comments may be lost. [Nick Kew]
350
351   *) mod_proxy_html: introduce doctype for HTML 5 [Nick Kew]
352
353   *) mod_proxy_html: fix typo-bug processing "strict" vs "transitional"
354      HTML/XHTML [Nick Kew]
355
356   *) core: Add option to add valgrind support. Use it to reduce false positive
357      warnings in mod_ssl. [Stefan Fritsch]
358
359   *) mod_authn_file, mod_authn_dbd, mod_authn_dbm, mod_authn_socache:
360      Cache the result of the most recent password hash verification for every
361      keep-alive connection. This saves some expensive calculations.
362      [Stefan Fritsch]
363
364   *) http: Remove support for Request-Range header sent by Navigator 2-3 and
365      MSIE 3. [Stefan Fritsch]
366
367   *) core, http: Extend HttpProtocol with an option to enforce stricter HTTP
368      conformance or to only log the found problems. [Stefan Fritsch]
369
370   *) core: Correctly parse an IPv6 literal host specification in an absolute
371      URL in the request line. [Stefan Fritsch]
372
373   *) EventOpt MPM
374
375   *) core: Add LogLevelOverride directive that allows to override the
376      loglevel for clients from certain IPs. This also works for things
377      like the SSL handshake where <If> LogLevel ... </If> is evaluated
378      too late. [Stefan Fritsch]
379
380   *) core: Add new directive Warning to issue warnings from a configuration
381      file. Both Warning and Error now generate a timestamped log message.
382      [Fabien Coelho] 
383
384   *) ap_expr: Add SERVER_PROTOCOL_VERSION, ..._MAJOR, and ..._MINOR
385      variables. [Stefan Fritsch]
386
387   *) core: New directive RegisterHttpMethod for registering non-standard
388      HTTP methods. [Stefan Fritsch]
389
390   *) core: New directive HttpProtocol which allows to disable HTTP/0.9
391      support. [Stefan Fritsch]
392
393   *) mod_allowhandlers: New module to forbid specific handlers for specific
394      directories. [Stefan Fritsch]
395
396   *) mod_systemd: New module, for integration with systemd on Linux.
397      [Jan Kaluza <jkaluza redhat.com>]
398
399   *) WinNT MPM: Store pid and generation for each thread in scoreboard
400      to allow tracking of threads from exiting children via mod_status
401      or other such mechanisms.  [Jeff Trawick]
402
403   *) The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR:
404      - APIs: ap_log_pid(), ap_remove_pid, ap_read_pid()
405      - core: the scoreboard (ScoreBoardFile), pid file (PidFile), and
406        mutexes (Mutex)
407      - mod_cache: thundering herd lock directory
408      - mod_lbmethod_heartbeat, mod_heartmonitor: heartbeat storage file
409      - mod_ldap: shared memory cache
410      - mod_socache_shmcb, mod_socache_dbm: shared memory or dbm for cache
411      [Jeff Trawick]
412
413   *) suexec: Add --enable-suexec-capabilites support on Linux, to use
414      setuid/setgid capability bits rather than a setuid root binary.
415      [Joe Orton]
416
417   *) suexec: Add support for logging to syslog as an alternative to logging
418      to a file; configure --without-suexec-logfile --with-suexec-syslog.  
419      [Joe Orton]
420
421   *) mod_ssl: Add support for TLS Next Protocol Negotiation.  PR 52210.
422      [Matthew Steele <mdsteele google.com>]
423
424   *) cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will
425      be compiled by the build compiler instead of the host compiler.
426      Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
427      PR 51257. [Guenter Knauf]
428
429   *) core: In maintainer mode, replace apr_palloc with a version that
430      initializes the allocated memory with non-zero values, except if
431      AP_DEBUG_NO_ALLOC_POISON is defined. [Stefan Fritsch]
432
433   *) mod_policy: Add a new testing module to help server administrators
434      enforce a configurable level of protocol compliance on their
435      servers and application servers behind theirs. [Graham Leggett]
436
437   *) mod_firehose: Add a new debugging module able to record traffic
438      passing through the server in such a way that connections and/or
439      requests be reconstructed and replayed. [Graham Leggett]
440
441   *) mod_noloris
442
443   *) APREQ
444
445   *) Simple MPM
446
447   *) mod_serf
448
449   [Apache 2.5.0-dev includes those bug fixes and changes with the
450    Apache 2.4.xx tree as documented below, except as noted.]
451
452 Changes with Apache 2.4.x and later:
453
454   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/CHANGES?view=markup
455
456 Changes with Apache 2.2.x and later:
457
458   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
459
460 Changes with Apache 2.0.x and later:
461
462   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
463