Rebuild docs with updated ChangeLog
[privoxy.git] / doc / webserver / announce.txt
1                Announcing Privoxy 3.0.32 stable
2 --------------------------------------------------------------------
3
4 Privoxy 3.0.32 fixes multiple DoS issues and a couple of other bugs.
5 The issues also affect earlier Privoxy releases.
6
7 --------------------------------------------------------------------
8 ChangeLog for Privoxy 3.0.32
9 --------------------------------------------------------------------
10 - Security/Reliability:
11   - ssplit(): Remove an assertion that could be triggered with a
12     crafted CGI request.
13     Commit 2256d7b4d67. OVE-20210203-0001.
14     Reported by: Joshua Rogers (Opera)
15   - cgi_send_banner(): Overrule invalid image types. Prevents a
16     crash with a crafted CGI request if Privoxy is toggled off.
17     Commit e711c505c48. OVE-20210206-0001.
18     Reported by: Joshua Rogers (Opera)
19   - socks5_connect(): Don't try to send credentials when none are
20     configured. Fixes a crash due to a NULL-pointer dereference
21     when the socks server misbehaves.
22     Commit 85817cc55b9. OVE-20210207-0001.
23     Reported by: Joshua Rogers (Opera)
24   - chunked_body_is_complete(): Prevent an invalid read of size two.
25     Commit a912ba7bc9c. OVE-20210205-0001.
26     Reported by: Joshua Rogers (Opera)
27   - Obsolete pcre: Prevent invalid memory accesses with an invalid
28     pattern passed to pcre_compile(). Note that the obsolete pcre code
29     is scheduled to be removed before the 3.0.33 release. There has been
30     a warning since 2008 already.
31     Commit 28512e5b624. OVE-20210222-0001.
32     Reported by: Joshua Rogers (Opera)
33
34 - Bug fixes:
35   - Properly parse the client-tag-lifetime directive. Previously it was
36     not accepted as an obsolete hash value was being used.
37     Reported by: Joshua Rogers (Opera)
38   - decompress_iob(): Prevent reading of uninitialized data.
39     Reported by: Joshua Rogers (Opera).
40   - decompress_iob(): Don't advance cur past eod when looking
41     for the end of the file name and comment.
42   - decompress_iob(): Cast value to unsigned char before shifting.
43     Prevents a left-shift of a negative value which is undefined behaviour.
44     Reported by: Joshua Rogers (Opera)
45   - gif_deanimate(): Confirm that that we have enough data before doing
46     any work. Fixes a crash when fuzzing with an empty document.
47     Reported by: Joshua Rogers (Opera).
48   - buf_copy(): Fail if there's no data to write or nothing to do.
49     Prevents undefined behaviour "applying zero offset to null pointer".
50     Reported by: Joshua Rogers (Opera)
51   - log_error(): Treat LOG_LEVEL_FATAL as fatal even when --stfu is
52     being used while fuzzing.
53     Reported by: Joshua Rogers (Opera).
54   - Respect DESTDIR when considering whether or not to install
55     config files with ".new" extension.
56   - OpenSSL ssl_store_cert(): Fix two error messages.
57   - Fix a couple of format specifiers.
58   - Silence compiler warnings when compiling with NDEBUG.
59   - fuzz_server_header(): Fix compiler warning.
60   - fuzz_client_header(): Fix compiler warning.
61   - cgi_send_user_manual(): Also reject requests if the user-manual
62     directive specifies a https:// URL. Previously Privoxy would try and
63     fail to open a local file.
64
65 - General improvements:
66   - Log the TLS version and the the cipher when debug 2 is enabled.
67   - ssl_send_certificate_error(): Respect HEAD requests by not sending a body.
68   - ssl_send_certificate_error(): End the body with a single new line.
69   - serve(): Increase the chances that the host is logged when closing
70     a server socket.
71   - handle_established_connection(): Add parentheses to clarify an expression
72     Suggested by: David Binderman
73   - continue_https_chat(): Explicitly unset CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE
74     if process_encrypted_request() fails. This makes it more obvious that the
75     connection will not be reused. Previously serve() relied on
76     CSP_FLAG_SERVER_CONTENT_LENGTH_SET and CSP_FLAG_CHUNKED being unset.
77     Inspired by a patch from Joshua Rogers (Opera).
78   - decompress_iob(): Add periods to a couple of log messages
79   - Terminate the body of the HTTP snipplets with a single new line
80     instead of "\r\n".
81   - configure: Add --with-assertions option and only enable assertions
82     when it is used
83   - windows build: Use --with-brotli and --with-mbedtls by default and
84     enable dynamic error checking.
85   - gif_deanimate(): Confirm we've got an image before trying to write it
86     Saves a pointless buf_copy() call.
87   - OpenSSL ssl_store_cert(): Remove a superfluous space before the serial number.
88
89 - Action file improvements:
90   - Disable fast-redirects for .golem.de/
91   - Unblock requests to adri*.
92   - Block requests for trc*.taboola.com/
93   - Disable fast-redirects for .linkedin.com/
94
95 - Filter file improvements:
96   - Make the second pcrs job of the img-reorder filter greedy again.
97     The ungreedy version broke the img tags on:
98     https://bulk.fefe.de/scalability/.
99
100 - Privoxy-Log-Parser:
101   - Highlight a few more messages.
102   - Clarify the --statistics output. The shown "Reused connections"
103     are server connections so name them appropriately.
104   - Bump version to 0.9.3.
105
106 - Privoxy-Regression-Test:
107   - Add the --check-bad-ssl option to the --help output.
108   - Bump version to 0.7.3.
109
110 - Documentation:
111   - Add pushing the created tag to the release steps in the developer manual.
112   - Clarify that 'debug 32768' should be used in addition to the other debug
113     directives when reporting problems.
114   - Add a 'Third-party licenses and copyrights' section to the user manual.
115
116 -----------------------------------------------------------------
117 About Privoxy:
118 -----------------------------------------------------------------
119
120 Privoxy is a non-caching web proxy with advanced filtering capabilities for
121 enhancing privacy, modifying web page data and HTTP headers, controlling
122 access, and removing ads and other obnoxious Internet junk. Privoxy has a
123 flexible configuration and can be customized to suit individual needs and
124 tastes. It has application for both stand-alone systems and multi-user
125 networks.
126
127 Privoxy is Free Software and licensed under the GNU GPLv2.
128
129 Our TODO list is rather long. Helping hands and donations are welcome:
130
131   * https://www.privoxy.org/participate
132
133   * https://www.privoxy.org/donate
134
135 At present, Privoxy is known to run on Windows 95 and later versions
136 (98, ME, 2000, XP, Vista, Windows 7, Windows 10 etc.), GNU/Linux
137 (RedHat, SuSE, Debian, Fedora, Gentoo, Slackware and others),
138 Mac OS X (10.4 and upwards on PPC and Intel processors), Haiku,
139 DragonFly, ElectroBSD, FreeBSD, NetBSD, OpenBSD, Solaris,
140 and various other flavors of Unix.
141
142 In addition to the core features of ad blocking and cookie management,
143 Privoxy provides many supplemental features, that give the end-user
144 more control, more privacy and more freedom:
145
146   *  Supports "Connection: keep-alive". Outgoing connections can be kept
147      alive independently from the client. Currently not available on all
148      platforms.
149
150   *  Supports IPv6, provided the operating system does so too,
151      and the configure script detects it.
152
153   *  Supports tagging which allows to change the behaviour based on client
154      and server headers.
155
156   *  Supports https inspection which allows to filter https requests.
157
158   *  Can be run as an "intercepting" proxy, which obviates the need to
159      configure browsers individually.
160
161   *  Sophisticated actions and filters for manipulating both server and
162      client headers.
163
164   *  Can be chained with other proxies.
165
166   *  Integrated browser based configuration and control utility at
167      http://config.privoxy.org/ (shortcut: http://p.p/). Browser-based
168      tracing of rule and filter effects. Remote toggling.
169
170   *  Web page filtering (text replacements, removes banners based on size,
171      invisible "web-bugs" and HTML annoyances, etc.)
172
173   *  Modularized configuration that allows for standard settings and user
174      settings to reside in separate files, so that installing updated actions
175      files won't overwrite individual user settings.
176
177   *  Support for Perl Compatible Regular Expressions in the configuration
178      files, and a more sophisticated and flexible configuration syntax.
179
180   *  GIF de-animation.
181
182   *  Bypass many click-tracking scripts (avoids script redirection).
183
184   *  User-customizable HTML templates for most proxy-generated pages (e.g.
185      "blocked" page).
186
187   *  Auto-detection and re-reading of config file changes.
188     
189   *  Most features are controllable on a per-site or per-location basis.
190
191
192 Home Page: 
193    https://www.privoxy.org/
194
195   - Privoxy Developers <privoxy-devel@lists.privoxy.org>