49dae71e569cba225302de11ab9bc44f8d252e55
[privoxy.git] / doc / source / changelog.sgml
1 <!--
2  File        :  $Source: /cvsroot/ijbswa/current/doc/source/changelog.sgml,v $
3
4  Purpose     :  Entity included in other project documents.
5
6  $Id: changelog.sgml,v 2.15 2016/01/21 15:57:16 fabiankeil Exp $
7
8  Copyright (C) 2013 Privoxy Developers http://www.privoxy.org/
9  See LICENSE.
10
11  ======================================================================
12   This file used for inclusion with other documents only.
13  ======================================================================
14
15  If you make changes to this file, please verify the finished
16  docs all display as intended.
17
18  This file is included into:
19
20   user-manual
21 -->
22
23 <para>
24   <application>Privoxy 3.0.24</application> stable contains a couple
25   of new features but is mainly a bug-fix release. Two of the fixed
26   bugs are security issues and may be used to remotely trigger crashes
27   on platforms that carefully check memory accesses (most don't).
28 </para>
29
30 <!--
31  The SGML ChangeLog can be generated with: utils/changelog2doc.pl ChangeLog
32 -->
33 <para>
34
35 <para>
36  <itemizedlist>
37   <listitem>
38    <para>
39     Security fixes (denial of service):
40     <itemizedlist>
41     <listitem>
42      <para>
43       Prevent invalid reads in case of corrupt chunk-encoded content.
44       CVE-2016-1982. Bug discovered with afl-fuzz and AddressSanitizer.
45      </para>
46     </listitem>
47     <listitem>
48      <para>
49       Remove empty Host headers in client requests.
50       Previously they would result in invalid reads. CVE-2016-1983.
51       Bug discovered with afl-fuzz and AddressSanitizer.
52      </para>
53      </listitem>
54     </itemizedlist>
55    </para>
56   </listitem>
57   <listitem>
58    <para>
59     Bug fixes:
60     <itemizedlist>
61     <listitem>
62      <para>
63       When using socks5t, send the request body optimistically as well.
64       Previously the request body wasn't guaranteed to be sent at all
65       and the error message incorrectly blamed the server.
66       Fixes #1686 reported by Peter Müller and G4JC.
67      </para>
68     </listitem>
69     <listitem>
70      <para>
71       Fixed buffer scaling in execute_external_filter() that could lead
72       to crashes. Submitted by Yang Xia in #892.
73      </para>
74     </listitem>
75     <listitem>
76      <para>
77       Fixed crashes when executing external filters on platforms like
78       Mac OS X. Reported by Jonathan McKenzie on ijbswa-users@.
79      </para>
80     </listitem>
81     <listitem>
82      <para>
83       Properly parse ACL directives with ports when compiled with HAVE_RFC2553.
84       Previously the port wasn't removed from the host and in case of
85       'permit-access 127.0.0.1 example.org:80' Privoxy would try (and fail)
86       to resolve "example.org:80" instead of example.org.
87       Reported by Pak Chan on ijbswa-users@.
88      </para>
89     </listitem>
90     <listitem>
91      <para>
92       Check requests more carefully before serving them forcefully
93       when blocks aren't enforced. Privoxy always adds the force token
94       at the beginning of the path, but would previously accept it anywhere
95       in the request line. This could result in requests being served that
96       should be blocked. For example in case of pages that were loaded with
97       force and contained JavaScript to create additionally requests that
98       embed the origin URL (thus inheriting the force prefix).
99       The bug is not considered a security issue and the fix does not make
100       it harder for remote sites to intentionally circumvent blocks if
101       Privoxy isn't configured to enforce them.
102       Fixes #1695 reported by Korda.
103      </para>
104     </listitem>
105     <listitem>
106      <para>
107       Normalize the request line in intercepted requests to make rewriting
108       the destination more convenient. Previously rewrites for intercepted
109       requests were expected to fail unless $hostport was being used, but
110       they failed "the wrong way" and would result in an out-of-memory
111       message (vanilla host patterns) or a crash (extended host patterns).
112       Reported by "Guybrush Threepwood" in #1694.
113      </para>
114     </listitem>
115     <listitem>
116      <para>
117       Enable socket lingering for the correct socket.
118       Previously it was repeatedly enabled for the listen socket
119       instead of for the accepted socket. The bug was found by
120       code inspection and did not cause any (reported) issues.
121      </para>
122     </listitem>
123     <listitem>
124      <para>
125       Detect and reject parameters for parameter-less actions.
126       Previously they were silently ignored.
127      </para>
128     </listitem>
129     <listitem>
130      <para>
131       Fixed invalid reads in internal and outdated pcre code.
132       Found with afl-fuzz and AddressSanitizer.
133      </para>
134     </listitem>
135     <listitem>
136      <para>
137       Prevent invalid read when loading invalid action files.
138       Found with afl-fuzz and AddressSanitizer.
139      </para>
140     </listitem>
141     <listitem>
142      <para>
143       Windows build: Use the correct function to close the event handle.
144       It's unclear if this bug had a negative impact on Privoxy's behaviour.
145       Reported by Jarry Xu in #891.
146      </para>
147     </listitem>
148     <listitem>
149      <para>
150       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.
153       Reported by Joel Verhagen in #889.
154      </para>
155      </listitem>
156     </itemizedlist>
157    </para>
158   </listitem>
159   <listitem>
160    <para>
161     General improvements:
162     <itemizedlist>
163     <listitem>
164      <para>
165       Set NO_DELAY flag for the accepting socket. This significantly reduces
166       the latency if the operating system is not configured to set the flag
167       by default. Reported by Johan Sintorn in #894.
168      </para>
169     </listitem>
170     <listitem>
171      <para>
172       Allow to build with mingw x86_64. Submitted by Rustam Abdullaev in #135.
173      </para>
174     </listitem>
175     <listitem>
176      <para>
177       Introduce the new forwarding type 'forward-webserver'.
178       Currently it is only supported by the forward-override{} action and
179       there's no config directive with the same name. The forwarding type
180       is similar to 'forward', but the request line only contains the path
181       instead of the complete URL.
182      </para>
183     </listitem>
184     <listitem>
185      <para>
186       The CGI editor no longer treats 'standard.action' special.
187       Nowadays the official "standards" are part of default.action
188       and there's no obvious reason to disallow editing them through
189       the cgi editor anyway (if the user decided that the lack of
190       authentication isn't an issue in her environment).
191      </para>
192     </listitem>
193     <listitem>
194      <para>
195       Improved error messages when rejecting intercepted requests
196       with unknown destination.
197      </para>
198     </listitem>
199     <listitem>
200      <para>
201       A couple of log messages now include the number of active threads.
202      </para>
203     </listitem>
204     <listitem>
205      <para>
206       Removed non-standard Proxy-Agent headers in HTTP snipplets
207       to make testing more convenient.
208      </para>
209     </listitem>
210     <listitem>
211      <para>
212       Include the error code for pcre errors Privoxy does not recognize.
213      </para>
214     </listitem>
215     <listitem>
216      <para>
217       Config directives with numerical arguments are checked more carefully.
218      </para>
219     </listitem>
220     <listitem>
221      <para>
222       Privoxy's malloc() wrapper has been changed to prevent zero-size
223       allocations which should only occur as the result of bugs.
224      </para>
225     </listitem>
226     <listitem>
227      <para>
228       Various cosmetic changes.
229      </para>
230      </listitem>
231     </itemizedlist>
232    </para>
233   </listitem>
234   <listitem>
235    <para>
236     Action file improvements:
237     <itemizedlist>
238     <listitem>
239      <para>
240       Unblock ".deutschlandradiokultur.de/".
241       Reported by u302320 in #924.
242      </para>
243     </listitem>
244     <listitem>
245      <para>
246       Add two fast-redirect exceptions for "yandex.ru".
247      </para>
248     </listitem>
249     <listitem>
250      <para>
251       Disable filter{banners-by-size} for ".plasmaservice.de/".
252      </para>
253     </listitem>
254     <listitem>
255      <para>
256       Unblock "klikki.fi/adv/".
257      </para>
258     </listitem>
259     <listitem>
260      <para>
261       Block requests for "resources.infolinks.com/".
262       Reported by "Black Rider" on ijbswa-users@.
263      </para>
264     </listitem>
265     <listitem>
266      <para>
267       Block a bunch of criteo domains.
268       Reported by Black Rider.
269      </para>
270     </listitem>
271     <listitem>
272      <para>
273       Block "abs.proxistore.com/abe/".
274       Reported by Black Rider.
275      </para>
276     </listitem>
277     <listitem>
278      <para>
279       Disable filter{banners-by-size} for ".black-mosquito.org/".
280      </para>
281     </listitem>
282     <listitem>
283      <para>
284       Disable fast-redirects for "disqus.com/".
285      </para>
286      </listitem>
287     </itemizedlist>
288    </para>
289   </listitem>
290   <listitem>
291    <para>
292     Documentation improvements:
293     <itemizedlist>
294     <listitem>
295      <para>
296       FAQ: Explicitly point fingers at ASUS as an example of a
297       company that has been reported to force malware based on
298       Privoxy upon its customers.
299      </para>
300     </listitem>
301     <listitem>
302      <para>
303       Correctly document the action type for a bunch of "multi-value"
304       actions that were incorrectly documented to be "parameterized".
305       Reported by Gregory Seidman on ijbswa-users@.
306      </para>
307     </listitem>
308     <listitem>
309      <para>
310       Fixed the documented type of the forward-override{} action
311       which is obviously 'parameterized'.
312      </para>
313      </listitem>
314     </itemizedlist>
315    </para>
316   </listitem>
317   <listitem>
318    <para>
319     Website improvements:
320     <itemizedlist>
321     <listitem>
322      <para>
323       Users who don't trust binaries served by SourceForge
324       can get them from a mirror. Migrating away from SourceForge
325       is planned for 2016 (TODO list item #53).
326      </para>
327     </listitem>
328     <listitem>
329      <para>
330       The website is now available as onion service
331       (http://jvauzb4sb3bwlsnc.onion/).
332      </para>
333      </listitem>
334     </itemizedlist>
335    </para>
336   </listitem>
337  </itemizedlist>
338 </para>