Two trivial ChangeLog edits
[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
4 <html>
5 <head>
6   <title>What's New in this Release</title>
7   <meta name="GENERATOR" content=
8   "Modular DocBook HTML Stylesheet Version 1.79">
9   <link rel="HOME" title="Privoxy 3.0.24 User Manual" href="index.html">
10   <link rel="PREVIOUS" title="Installation" href="installation.html">
11   <link rel="NEXT" title="Quickstart to Using Privoxy" href=
12   "quickstart.html">
13   <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
14   <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
15   <link rel="STYLESHEET" type="text/css" href="p_doc.css">
16 </head>
17
18 <body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
19 "#840084" alink="#0000FF">
20   <div class="NAVHEADER">
21     <table summary="Header navigation table" width="100%" border="0"
22     cellpadding="0" cellspacing="0">
23       <tr>
24         <th colspan="3" align="center">Privoxy 3.0.24 User Manual</th>
25       </tr>
26
27       <tr>
28         <td width="10%" align="left" valign="bottom"><a href=
29         "installation.html" accesskey="P">Prev</a></td>
30
31         <td width="80%" align="center" valign="bottom"></td>
32
33         <td width="10%" align="right" valign="bottom"><a href=
34         "quickstart.html" accesskey="N">Next</a></td>
35       </tr>
36     </table>
37     <hr align="left" width="100%">
38   </div>
39
40   <div class="SECT1">
41     <h1 class="SECT1"><a name="WHATSNEW" id="WHATSNEW">3. What's New in this
42     Release</a></h1>
43
44     <p><span class="APPLICATION">Privoxy 3.0.24</span> stable contains a
45     couple of new features but is mainly a bug-fix release. Two of the fixed
46     bugs are security issues (CVE requests pending) and may be used to
47     remotely trigger crashes on platforms that carefully check memory
48     accesses (most don't).</p>
49
50     <ul>
51       <li>
52         <p>Security fixes (denial of service):</p>
53
54         <ul>
55           <li>
56             <p>Prevent invalid reads in case of corrupt chunk-encoded
57             content. Bug discovered with afl-fuzz and AddressSanitizer.</p>
58           </li>
59
60           <li>
61             <p>Remove empty Host headers in client requests. Previously they
62             would result in invalid reads. Bug discovered with afl-fuzz and
63             AddressSanitizer.</p>
64           </li>
65         </ul>
66       </li>
67
68       <li>
69         <p>Bug fixes:</p>
70
71         <ul>
72           <li>
73             <p>When using socks5t, send the request body optimistically as
74             well. Previously the request body wasn't guaranteed to be sent at
75             all and the error message incorrectly blamed the server. Fixes
76             #1686 reported by Peter M&uuml;ller and G4JC.</p>
77           </li>
78
79           <li>
80             <p>Fixed buffer scaling in execute_external_filter() that could
81             lead to crashes. Submitted by Yang Xia in #892.</p>
82           </li>
83
84           <li>
85             <p>Fixed crashes when executing external filters on platforms
86             like Mac OS X. Reported by Jonathan McKenzie on ijbswa-users@.</p>
87           </li>
88
89           <li>
90             <p>Properly parse ACL directives with ports when compiled with
91             HAVE_RFC2553. Previously the port wasn't removed from the host
92             and in case of 'permit-access 127.0.0.1 example.org:80' Privoxy
93             would try (and fail) to resolve "example.org:80" instead of
94             example.org. Reported by Pak Chan on ijbswa-users@.</p>
95           </li>
96
97           <li>
98             <p>Check requests more carefully before serving them forcefully
99             when blocks aren't enforced. Privoxy always adds the force token
100             at the beginning of the path, but would previously accept it
101             anywhere in the request line. This could result in requests being
102             served that should be blocked. For example in case of pages that
103             were loaded with force and contained JavaScript to create
104             additionally requests that embed the origin URL (thus inheriting
105             the force prefix). The bug is not considered a security issue and
106             the fix does not make it harder for remote sites to intentionally
107             circumvent blocks if Privoxy isn't configured to enforce them.
108             Fixes #1695 reported by Korda.</p>
109           </li>
110
111           <li>
112             <p>Normalize the request line in intercepted requests to make
113             rewriting the destination more convenient. Previously rewrites
114             for intercepted requests were expected to fail unless $hostport
115             was being used, but they failed "the wrong way" and would result
116             in an out-of-memory message (vanilla host patterns) or a crash
117             (extended host patterns). Reported by "Guybrush Threepwood" in
118             #1694.</p>
119           </li>
120
121           <li>
122             <p>Enable socket lingering for the correct socket. Previously it
123             was repeatedly enabled for the listen socket instead of for the
124             accepted socket. The bug was found by code inspection and did not
125             cause any (reported) issues.</p>
126           </li>
127
128           <li>
129             <p>Detect and reject parameters for parameter-less actions.
130             Previously they were silently ignored.</p>
131           </li>
132
133           <li>
134             <p>Fixed invalid reads in internal and outdated pcre code. Found
135             with afl-fuzz and AddressSanitizer.</p>
136           </li>
137
138           <li>
139             <p>Prevent invalid read when loading invalid action files. Found
140             with afl-fuzz and AddressSanitizer.</p>
141           </li>
142
143           <li>
144             <p>Windows build: Use the correct function to close the event
145             handle. It's unclear if this bug had a negative impact on
146             Privoxy's behaviour. Reported by Jarry Xu in #891.</p>
147           </li>
148
149           <li>
150             <p>In case of invalid forward-socks5(t) directives, use the
151             correct directive name in the error messages. Previously they
152             referred to forward-socks4t failures. Reported by Joel Verhagen
153             in #889.</p>
154           </li>
155         </ul>
156       </li>
157
158       <li>
159         <p>General improvements:</p>
160
161         <ul>
162           <li>
163             <p>Set NO_DELAY flag for the accepting socket. This significantly
164             reduces the latency if the operating system is not configured to
165             set the flag by default. Reported by Johan Sintorn in #894.</p>
166           </li>
167
168           <li>
169             <p>Allow to build with mingw x86_64. Submitted by Rustam
170             Abdullaev in #135.</p>
171           </li>
172
173           <li>
174             <p>Introduce the new forwarding type 'forward-webserver'.
175             Currently it is only supported by the forward-override{} action
176             and there's no config directive with the same name. The
177             forwarding type is similar to 'forward', but the request line
178             only contains the path instead of the complete URL.</p>
179           </li>
180
181           <li>
182             <p>The CGI editor no longer treats 'standard.action' special.
183             Nowadays the official "standards" are part of default.action and
184             there's no obvious reason to disallow editing them through the
185             cgi editor anyway (if the user decided that the lack of
186             authentication isn't an issue in her environment).</p>
187           </li>
188
189           <li>
190             <p>Improved error messages when rejecting intercepted requests
191             with unknown destination.</p>
192           </li>
193
194           <li>
195             <p>A couple of log messages now include the number of active
196             threads.</p>
197           </li>
198
199           <li>
200             <p>Removed non-standard Proxy-Agent headers in HTTP snipplets to
201             make testing more convenient.</p>
202           </li>
203
204           <li>
205             <p>Include the error code for pcre errors Privoxy does not
206             recognize.</p>
207           </li>
208
209           <li>
210             <p>Config directives with numerical arguments are checked more
211             carefully.</p>
212           </li>
213
214           <li>
215             <p>Privoxy's malloc() wrapper has been changed to prevent
216             zero-size allocations which should only occur as the result of
217             bugs.</p>
218           </li>
219
220           <li>
221             <p>Various cosmetic changes.</p>
222           </li>
223         </ul>
224       </li>
225
226       <li>
227         <p>Action file improvements:</p>
228
229         <ul>
230           <li>
231             <p>Unblock ".deutschlandradiokultur.de/". Reported by u302320 in
232             #924.</p>
233           </li>
234
235           <li>
236             <p>Add two fast-redirect exceptions for "yandex.ru".</p>
237           </li>
238
239           <li>
240             <p>Disable filter{banners-by-size} for ".plasmaservice.de/".</p>
241           </li>
242
243           <li>
244             <p>Unblock "klikki.fi/adv/".</p>
245           </li>
246
247           <li>
248             <p>Block requests for "resources.infolinks.com/". Reported by
249             "Black Rider" on ijbswa-users@.</p>
250           </li>
251
252           <li>
253             <p>Block a bunch of criteo domains. Reported by Black Rider.</p>
254           </li>
255
256           <li>
257             <p>Block "abs.proxistore.com/abe/". Reported by Black Rider.</p>
258           </li>
259
260           <li>
261             <p>Disable filter{banners-by-size} for
262             ".black-mosquito.org/".</p>
263           </li>
264
265           <li>
266             <p>Disable fast-redirects for "disqus.com/".</p>
267           </li>
268         </ul>
269       </li>
270
271       <li>
272         <p>Documentation improvements:</p>
273
274         <ul>
275           <li>
276             <p>FAQ: Explicitly point fingers at ASUS as an example of a
277             company that has been reported to force malware based on Privoxy
278             upon its customers.</p>
279           </li>
280
281           <li>
282             <p>Correctly document the action type for a bunch of
283             "multi-value" actions that were incorrectly documented to be
284             "parameterized". Reported by Gregory Seidman on
285             ijbswa-users@.</p>
286           </li>
287
288           <li>
289             <p>Fixed the documented type of the forward-override{} action
290             which is obviously 'parameterized'.</p>
291           </li>
292         </ul>
293       </li>
294
295       <li>
296         <p>Website improvements:</p>
297
298         <ul>
299           <li>
300             <p>Users who don't trust binaries served by SourceForge can get
301             them from a mirror. Migrating away from SourceForge is planned
302             for 2016 (TODO list item #53).</p>
303           </li>
304
305           <li>
306             <p>The website is now available as onion service
307             (http://jvauzb4sb3bwlsnc.onion/).</p>
308           </li>
309         </ul>
310       </li>
311     </ul>
312
313     <div class="SECT2">
314       <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note
315       to Upgraders</a></h2>
316
317       <p>A quick list of things to be aware of before upgrading from earlier
318       versions of <span class="APPLICATION">Privoxy</span>:</p>
319
320       <ul>
321         <li>
322           <p>The recommended way to upgrade <span class=
323           "APPLICATION">Privoxy</span> is to backup your old configuration
324           files, install the new ones, verify that <span class=
325           "APPLICATION">Privoxy</span> is working correctly and finally merge
326           back your changes using <span class="APPLICATION">diff</span> and
327           maybe <span class="APPLICATION">patch</span>.</p>
328
329           <p>There are a number of new features in each <span class=
330           "APPLICATION">Privoxy</span> release and most of them have to be
331           explicitly enabled in the configuration files. Old configuration
332           files obviously don't do that and due to syntax changes using old
333           configuration files with a new <span class=
334           "APPLICATION">Privoxy</span> isn't always possible anyway.</p>
335         </li>
336
337         <li>
338           <p>Note that some installers remove earlier versions completely,
339           including configuration files, therefore you should really save any
340           important configuration files!</p>
341         </li>
342
343         <li>
344           <p>On the other hand, other installers don't overwrite existing
345           configuration files, thinking you will want to do that
346           yourself.</p>
347         </li>
348
349         <li>
350           <p>In the default configuration only fatal errors are logged now.
351           You can change that in the <a href="config.html#DEBUG">debug
352           section</a> of the configuration file. You may also want to enable
353           more verbose logging until you verified that the new <span class=
354           "APPLICATION">Privoxy</span> version is working as expected.</p>
355         </li>
356
357         <li>
358           <p>Three other config file settings are now off by default:
359           <a href="config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>,
360           <a href=
361           "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>,
362           and <a href=
363           "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you
364           use or want these, you will need to explicitly enable them, and be
365           aware of the security issues involved.</p>
366         </li>
367       </ul>
368     </div>
369   </div>
370
371   <div class="NAVFOOTER">
372     <hr align="left" width="100%">
373
374     <table summary="Footer navigation table" width="100%" border="0"
375     cellpadding="0" cellspacing="0">
376       <tr>
377         <td width="33%" align="left" valign="top"><a href="installation.html"
378         accesskey="P">Prev</a></td>
379
380         <td width="34%" align="center" valign="top"><a href="index.html"
381         accesskey="H">Home</a></td>
382
383         <td width="33%" align="right" valign="top"><a href="quickstart.html"
384         accesskey="N">Next</a></td>
385       </tr>
386
387       <tr>
388         <td width="33%" align="left" valign="top">Installation</td>
389
390         <td width="34%" align="center" valign="top">&nbsp;</td>
391
392         <td width="33%" align="right" valign="top">Quickstart to Using
393         Privoxy</td>
394       </tr>
395     </table>
396   </div>
397 </body>
398 </html>