dceb2ed75f59f577773279a73dc592d32ff67eab
[privoxy.git] / doc / webserver / user-manual / whatsnew.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
3 <html>
4 <head>
5   <title>What's New in this Release</title>
6   <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
7   <link rel="HOME" title="Privoxy 3.0.33 User Manual" href="index.html">
8   <link rel="PREVIOUS" title="Installation" href="installation.html">
9   <link rel="NEXT" title="Quickstart to Using Privoxy" href="quickstart.html">
10   <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
11   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
12   <link rel="STYLESHEET" type="text/css" href="p_doc.css">
13 </head>
14 <body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink="#840084" alink="#0000FF">
15   <div class="NAVHEADER">
16     <table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
17       <tr>
18         <th colspan="3" align="center">Privoxy 3.0.33 User Manual</th>
19       </tr>
20       <tr>
21         <td width="10%" align="left" valign="bottom"><a href="installation.html" accesskey="P">Prev</a></td>
22         <td width="80%" align="center" valign="bottom"></td>
23         <td width="10%" align="right" valign="bottom"><a href="quickstart.html" accesskey="N">Next</a></td>
24       </tr>
25     </table>
26     <hr align="left" width="100%">
27   </div>
28   <div class="SECT1">
29     <h1 class="SECT1"><a name="WHATSNEW" id="WHATSNEW">3. What's New in this Release</a></h1>
30     <p><span class="APPLICATION">Privoxy 3.0.32</span> fixes multiple DoS issues and a couple of other bugs. The issues
31     also affect earlier Privoxy releases.</p>
32     <p>Changes in <span class="APPLICATION">Privoxy 3.0.32</span> stable:</p>
33     <ul>
34       <li>
35         <p>Security/Reliability:</p>
36         <ul>
37           <li>
38             <p>ssplit(): Remove an assertion that could be triggered with a crafted CGI request. Commit 2256d7b4d67.
39             OVE-20210203-0001. Reported by: Joshua Rogers (Opera)</p>
40           </li>
41           <li>
42             <p>cgi_send_banner(): Overrule invalid image types. Prevents a crash with a crafted CGI request if Privoxy
43             is toggled off. Commit e711c505c48. OVE-20210206-0001. Reported by: Joshua Rogers (Opera)</p>
44           </li>
45           <li>
46             <p>socks5_connect(): Don't try to send credentials when none are configured. Fixes a crash due to a
47             NULL-pointer dereference when the socks server misbehaves. Commit 85817cc55b9. OVE-20210207-0001. Reported
48             by: Joshua Rogers (Opera)</p>
49           </li>
50           <li>
51             <p>chunked_body_is_complete(): Prevent an invalid read of size two. Commit a912ba7bc9c. OVE-20210205-0001.
52             Reported by: Joshua Rogers (Opera)</p>
53           </li>
54           <li>
55             <p>Obsolete pcre: Prevent invalid memory accesses with an invalid pattern passed to pcre_compile(). Note
56             that the obsolete pcre code is scheduled to be removed before the 3.0.33 release. There has been a warning
57             since 2008 already. Commit 28512e5b624. OVE-20210222-0001. Reported by: Joshua Rogers (Opera)</p>
58           </li>
59         </ul>
60       </li>
61       <li>
62         <p>Bug fixes:</p>
63         <ul>
64           <li>
65             <p>Properly parse the client-tag-lifetime directive. Previously it was not accepted as an obsolete hash
66             value was being used. Reported by: Joshua Rogers (Opera)</p>
67           </li>
68           <li>
69             <p>decompress_iob(): Prevent reading of uninitialized data. Reported by: Joshua Rogers (Opera).</p>
70           </li>
71           <li>
72             <p>decompress_iob(): Don't advance cur past eod when looking for the end of the file name and comment.</p>
73           </li>
74           <li>
75             <p>decompress_iob(): Cast value to unsigned char before shifting. Prevents a left-shift of a negative value
76             which is undefined behaviour. Reported by: Joshua Rogers (Opera)</p>
77           </li>
78           <li>
79             <p>gif_deanimate(): Confirm that that we have enough data before doing any work. Fixes a crash when fuzzing
80             with an empty document. Reported by: Joshua Rogers (Opera).</p>
81           </li>
82           <li>
83             <p>buf_copy(): Fail if there's no data to write or nothing to do. Prevents undefined behaviour "applying
84             zero offset to null pointer". Reported by: Joshua Rogers (Opera)</p>
85           </li>
86           <li>
87             <p>log_error(): Treat LOG_LEVEL_FATAL as fatal even when --stfu is being used while fuzzing. Reported by:
88             Joshua Rogers (Opera).</p>
89           </li>
90           <li>
91             <p>Respect DESTDIR when considering whether or not to install config files with ".new" extension.</p>
92           </li>
93           <li>
94             <p>OpenSSL ssl_store_cert(): Fix two error messages.</p>
95           </li>
96           <li>
97             <p>Fix a couple of format specifiers.</p>
98           </li>
99           <li>
100             <p>Silence compiler warnings when compiling with NDEBUG.</p>
101           </li>
102           <li>
103             <p>fuzz_server_header(): Fix compiler warning.</p>
104           </li>
105           <li>
106             <p>fuzz_client_header(): Fix compiler warning.</p>
107           </li>
108           <li>
109             <p>cgi_send_user_manual(): Also reject requests if the user-manual directive specifies a https:// URL.
110             Previously Privoxy would try and fail to open a local file.</p>
111           </li>
112         </ul>
113       </li>
114       <li>
115         <p>General improvements:</p>
116         <ul>
117           <li>
118             <p>Log the TLS version and the the cipher when debug 2 is enabled.</p>
119           </li>
120           <li>
121             <p>ssl_send_certificate_error(): Respect HEAD requests by not sending a body.</p>
122           </li>
123           <li>
124             <p>ssl_send_certificate_error(): End the body with a single new line.</p>
125           </li>
126           <li>
127             <p>serve(): Increase the chances that the host is logged when closing a server socket.</p>
128           </li>
129           <li>
130             <p>handle_established_connection(): Add parentheses to clarify an expression Suggested by: David
131             Binderman</p>
132           </li>
133           <li>
134             <p>continue_https_chat(): Explicitly unset CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE if
135             process_encrypted_request() fails. This makes it more obvious that the connection will not be reused.
136             Previously serve() relied on CSP_FLAG_SERVER_CONTENT_LENGTH_SET and CSP_FLAG_CHUNKED being unset. Inspired
137             by a patch from Joshua Rogers (Opera).</p>
138           </li>
139           <li>
140             <p>decompress_iob(): Add periods to a couple of log messages</p>
141           </li>
142           <li>
143             <p>Terminate the body of the HTTP snipplets with a single new line instead of "\r\n".</p>
144           </li>
145           <li>
146             <p>configure: Add --with-assertions option and only enable assertions when it is used</p>
147           </li>
148           <li>
149             <p>windows build: Use --with-brotli and --with-mbedtls by default and enable dynamic error checking.</p>
150           </li>
151           <li>
152             <p>gif_deanimate(): Confirm we've got an image before trying to write it Saves a pointless buf_copy()
153             call.</p>
154           </li>
155           <li>
156             <p>OpenSSL ssl_store_cert(): Remove a superfluous space before the serial number.</p>
157           </li>
158         </ul>
159       </li>
160       <li>
161         <p>Action file improvements:</p>
162         <ul>
163           <li>
164             <p>Disable fast-redirects for .golem.de/</p>
165           </li>
166           <li>
167             <p>Unblock requests to adri*.</p>
168           </li>
169           <li>
170             <p>Block requests for trc*.taboola.com/</p>
171           </li>
172           <li>
173             <p>Disable fast-redirects for .linkedin.com/</p>
174           </li>
175         </ul>
176       </li>
177       <li>
178         <p>Filter file improvements:</p>
179         <ul>
180           <li>
181             <p>Make the second pcrs job of the img-reorder filter greedy again. The ungreedy version broke the img tags
182             on: https://bulk.fefe.de/scalability/.</p>
183           </li>
184         </ul>
185       </li>
186       <li>
187         <p>Privoxy-Log-Parser:</p>
188         <ul>
189           <li>
190             <p>Highlight a few more messages.</p>
191           </li>
192           <li>
193             <p>Clarify the --statistics output. The shown "Reused connections" are server connections so name them
194             appropriately.</p>
195           </li>
196           <li>
197             <p>Bump version to 0.9.3.</p>
198           </li>
199         </ul>
200       </li>
201       <li>
202         <p>Privoxy-Regression-Test:</p>
203         <ul>
204           <li>
205             <p>Add the --check-bad-ssl option to the --help output.</p>
206           </li>
207           <li>
208             <p>Bump version to 0.7.3.</p>
209           </li>
210         </ul>
211       </li>
212       <li>
213         <p>Documentation:</p>
214         <ul>
215           <li>
216             <p>Add pushing the created tag to the release steps in the developer manual.</p>
217           </li>
218           <li>
219             <p>Clarify that 'debug 32768' should be used in addition to the other debug directives when reporting
220             problems.</p>
221           </li>
222           <li>
223             <p>Add a 'Third-party licenses and copyrights' section to the user manual.</p>
224           </li>
225         </ul>
226       </li>
227     </ul>
228     <div class="SECT2">
229       <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note to Upgraders</a></h2>
230       <p>A quick list of things to be aware of before upgrading from earlier versions of <span class=
231       "APPLICATION">Privoxy</span>:</p>
232       <ul>
233         <li>
234           <p>The recommended way to upgrade <span class="APPLICATION">Privoxy</span> is to backup your old
235           configuration files, install the new ones, verify that <span class="APPLICATION">Privoxy</span> is working
236           correctly and finally merge back your changes using <span class="APPLICATION">diff</span> and maybe
237           <span class="APPLICATION">patch</span>.</p>
238           <p>There are a number of new features in each <span class="APPLICATION">Privoxy</span> release and most of
239           them have to be explicitly enabled in the configuration files. Old configuration files obviously don't do
240           that and due to syntax changes using old configuration files with a new <span class=
241           "APPLICATION">Privoxy</span> isn't always possible anyway.</p>
242         </li>
243         <li>
244           <p>Note that some installers remove earlier versions completely, including configuration files, therefore you
245           should really save any important configuration files!</p>
246         </li>
247         <li>
248           <p>On the other hand, other installers don't overwrite existing configuration files, thinking you will want
249           to do that yourself.</p>
250         </li>
251         <li>
252           <p>In the default configuration only fatal errors are logged now. You can change that in the <a href=
253           "config.html#DEBUG">debug section</a> of the configuration file. You may also want to enable more verbose
254           logging until you verified that the new <span class="APPLICATION">Privoxy</span> version is working as
255           expected.</p>
256         </li>
257         <li>
258           <p>Three other config file settings are now off by default: <a href=
259           "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>, <a href=
260           "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>, and <a href=
261           "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you use or want these, you will need to
262           explicitly enable them, and be aware of the security issues involved.</p>
263         </li>
264       </ul>
265     </div>
266   </div>
267   <div class="NAVFOOTER">
268     <hr align="left" width="100%">
269     <table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
270       <tr>
271         <td width="33%" align="left" valign="top"><a href="installation.html" accesskey="P">Prev</a></td>
272         <td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">Home</a></td>
273         <td width="33%" align="right" valign="top"><a href="quickstart.html" accesskey="N">Next</a></td>
274       </tr>
275       <tr>
276         <td width="33%" align="left" valign="top">Installation</td>
277         <td width="34%" align="center" valign="top">&nbsp;</td>
278         <td width="33%" align="right" valign="top">Quickstart to Using Privoxy</td>
279       </tr>
280     </table>
281   </div>
282 </body>
283 </html>