
                            Apache 1.3.28 Released

   The Apache Software Foundation and The Apache Server Project are
   pleased to announce the release of version 1.3.28 of the Apache HTTP
   Server.  This Announcement notes the significant changes in 1.3.28
   as compared to 1.3.27.

   This version of Apache is principally a bug and security fix release.
   A partial summary of the bug fixes is given at the end of this document.
   A full listing of changes can be found in the CHANGES file.  Of
   particular note is that 1.3.28 addresses and fixes 3 potential
   security issues:

    o CAN-2003-0460 (cve.mitre.org): Fix the rotatelogs support program on
      Win32 and OS/2 to ignore special control characters received over the
      pipe.  Previously such characters could cause it to quit logging and
      exit.  We would like to thank the Hitachi Incident Response team for
      their responsible disclosure of this issue.

    o VU#379828 : The server could crash when going into an infinite loop
      due to too many subsequent internal redirects and nested subrequests. 
   
    o Eliminated leaks of several file descriptors to child processes, such
      as CGI scripts.

   We consider Apache 1.3.28 to be the best version of Apache 1.3 available
   and we strongly recommend that users of older versions, especially of
   the 1.1.x and 1.2.x family, upgrade as soon as possible.  No further
   releases will be made in the 1.2.x family.

   Apache 1.3.28 is available for download from
   
       http://httpd.apache.org/download.cgi
                - or -
       http://www.apache.org/dist/httpd/

   Please see the CHANGES_1.3 file in the same directory for a full list
   of changes.

   Binary distributions are available from

       http://www.apache.org/dist/httpd/binaries/

   The source and binary distributions are also available via any of the
   mirrors listed at

       http://www.apache.org/mirrors/

   As of Apache 1.3.12 binary distributions contain all standard Apache
   modules as shared objects (if supported by the platform) and include
   full source code.  Installation is easily done by executing the
   included install script.  See the README.bindist and INSTALL.bindist
   files for a complete explanation.  Please note that the binary
   distributions are only provided for your convenience and current
   distributions for specific platforms are not always available. Win32
   binary distributions are based on the Microsoft Installer (.MSI)
   technology.  While development continues to make this installation method
   more robust, questions should be directed to the
   news:comp.infosystems.www.servers.ms-windows newsgroup.

   For an overview of new features introduced after 1.2 please see
   
   http://httpd.apache.org/docs/new_features_1_3.html

   In general, Apache 1.3 offers several substantial improvements over
   version 1.2, including better performance, reliability and a wider
   range of supported platforms, including Windows NT and 2000 (which
   fall under the "Win32" label), OS2, Netware, and TPE threaded
   platforms.

   Apache is the most popular web server in the known universe; over half
   of the servers on the Internet are running Apache or one of its
   variants.

   IMPORTANT NOTE FOR APACHE USERS:   Apache 1.3 was designed for Unix OS
   variants.  While  the ports to non-Unix platforms (such as Win32, Netware
   or OS2) are of an acceptable quality, Apache 1.3 is not optimized for
   these platforms.  Security, stability, or performance issues on these
   non-Unix ports do not generally apply to the Unix version, due to
   software's Unix origin.

   Apache 2.0 has been structured for multiple operating systems from its 
   inception, by introducing the Apache Portability Library and MPM modules.
   Users on non-Unix platforms are strongly encouraged to move up to 
   Apache 2.0 for better performance, stability and security on their
   platforms.

                     Apache 1.3.28 Major changes

  Security vulnerabilities

     * CAN-2003-0460 (cve.mitre.org): Fix the rotatelogs support program on
       Win32 and OS/2 to ignore special control characters received over the
       pipe.  Previously such characters could cause it to quit logging and
       exit.  We would like to thank the Hitachi Incident Response team for
       their responsible disclosure of this issue.

     * VU#379828 : The server could crash when going into an infinite loop
       due to too many subsequent internal redirects and nested subrequests. 
   
     * Eliminated leaks of several file descriptors to child processes, such
       as CGI scripts.

  New features

   The main new features in 1.3.28 (compared to 1.3.27) are:

     * Added new ap_register_cleanup_ex() API function which allows
       for a "magic" cleanup function to be run at register time
       rather than at cleanup time. 

     * Improvements to mod_usertrack that allows for a regular (verbose)
       as well as "compact" version of the tracking cookie (the new
       'CookieFormat' directive), and the ability to prepend a string
       to the cookie via the 'CookiePrefix' directive.

   New features that relate to specific platforms:

     * Introduce Win32 .pdb diagnostic symbols into the Apache 1.3 build
       (as created in Apache 2.0.45 and later.)  which akes debugging and
       analysis of crash dumps and Dr. Watson logs trivial.

     * AIX: Change the default accept mechanism from pthread back to
       fcntl.

  Bugs fixed

   The following noteworthy bugs were found in Apache 1.3.27 (or earlier)
   and have been fixed in Apache 1.3.28:

     * Make sure the accept mutex is released before calling child exit
       hooks and cleanups.

     * Fix mod_rewrite's handling of absolute URIs.  The escaping routines
       now work scheme dependent and the query string will only be
       appended if supported by the particular scheme.

     * Prevent obscenely large values of precision in ap_vformatter
       from clobbering a buffer.

     * Update timeout algorithm in free_proc_chain. If a subprocess
       did not exit immediately, the thread would sleep for 3 seconds
       before checking the subprocess exit status again. In a very
       common case when the subprocess was an HTTP server CGI script,
       the CGI script actually exited a fraction of a second into the 3
       second sleep, which effectively limited the server to serving one 
       CGI request every 3 seconds across a persistent connection.

