X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fsource%2Fchangelog.sgml;h=6ca1058ddf991061b66ca33501962f01c67ab8d7;hp=707ac5c1847889e7fdf01ecddbfa5bfe736a5e0a;hb=f2be4cfb0e98db4cf6fcf33f3f1efadabe399887;hpb=ec4a051cd6a42c47dd9cf2fec9a1ab179649c6d5 diff --git a/doc/source/changelog.sgml b/doc/source/changelog.sgml index 707ac5c1..6ca1058d 100644 --- a/doc/source/changelog.sgml +++ b/doc/source/changelog.sgml @@ -1,11 +1,9 @@ - - Privoxy 3.0.24 stable contains a couple - of new features but is mainly a bug-fix release. Two of the fixed - bugs are security issues and may be used to remotely trigger crashes - on platforms that carefully check memory accesses (most don't). - - + Privoxy 3.0.29 fixes a couple of memory + leaks and introduces https inspection which allows to filter encrypted + requests and responses. + + + Changes in Privoxy 3.0.29 stable: + - Security fixes (denial of service): + Security/Reliability: - Prevent invalid reads in case of corrupt chunk-encoded content. - CVE-2016-1982. Bug discovered with afl-fuzz and AddressSanitizer. + Fixed memory leaks when a response is buffered and the buffer + limit is reached or Privoxy is running out of memory. + Commits bbd53f1010b and 4490d451f9b. OVE-20201118-0001. + Sponsored by: Robert Klemme + + + + + Fixed a memory leak in the show-status CGI handler when + no action files are configured. Commit c62254a686. + OVE-20201118-0002. + Sponsored by: Robert Klemme + + + + + Fixed a memory leak in the show-status CGI handler when + no filter files are configured. Commit 1b1370f7a8a. + OVE-20201118-0003. + Sponsored by: Robert Klemme + + + + + Fixes a memory leak when client tags are active. + Commit 245e1cf32. OVE-20201118-0004. + Sponsored by: Robert Klemme + + + + + Fixed a memory leak if multiple filters are executed + and the last one is skipped due to a pcre error. + Commit 5cfb7bc8fe. OVE-20201118-0005. + + + + + Prevent an unlikely dereference of a NULL-pointer that + could result in a crash if accept-intercepted-requests + was enabled, Privoxy failed to get the request destination + from the Host header and a memory allocation failed. + Commit 7530132349. CID 267165. OVE-20201118-0006. + + + + + Fixed memory leaks in the client-tags CGI handler when + client tags are configured and memory allocations fail. + Commit cf5640eb2a. CID 267168. OVE-20201118-0007. - Remove empty Host headers in client requests. - Previously they would result in invalid reads. CVE-2016-1983. - Bug discovered with afl-fuzz and AddressSanitizer. + Fixed memory leaks in the show-status CGI handler when memory + allocations fail. Commit 064eac5fd0 and commit fdee85c0bf3. + CID 305233. OVE-20201118-0008. @@ -56,101 +102,218 @@ - Bug fixes: + General improvements: - When using socks5t, send the request body optimistically as well. - Previously the request body wasn't guaranteed to be sent at all - and the error message incorrectly blamed the server. - Fixes #1686 reported by Peter Müller and G4JC. + Added experimental https inspection support which allows to filter + https traffic. To enable it, install MbedTLS and configure with + --with-mbedtls, or install OpenSSL or LibreSSL and configure + with --with-openssl. + Afterwards configure the directives in section 7 of the + config file and enable the +https-inspection action. + Initial MbedTLS-based code contributed by Vaclav Svec, + initial OpenSSL support contributed by Maxim Antonov. + With help from Nedzad Hrnjica and Ho+ Ho+ Ho+. + Integration and improvements sponsored by Robert Klemme. + + + + + pcrs: Request JIT compilation if it's supported and + the filter isn't dynamic. This can speed up filtering. + + + + + Added support for Brotli decompression. + Sponsored by: Robert Klemme + + + + + Added FEATURE_EXTENDED_STATISTICS to gather statistics for + block reasons and filter executions. To enable it, configure + with --enable-extended-statistics and visit + http://config.privoxy.org/show-status. + Sponsored by: Robert Klemme + + + + + Use the IP_FREEBIND socket option, if defined. This allows + Privoxy to bind to not-yet assigned IP addresses which is + useful in failover environments. + Patch by Sam Varshavchik. + + + + + Allow to use extended host patterns and vanilla host patterns + at the same time by prefixing extended host patterns with + "PCRE-HOST-PATTERN:". To enable this, configure with + --enable-pcre-host-patterns. + Sponsored by: Robert Klemme + + + + + Added "Cross-origin resource sharing" (CORS) support. + This allows to access Privoxy's CGI interface via JavaScript from + another domain (white-listed with the new cors-allowed-origin directive). + Based on a patch by Nedzad Hrnjica. + Sponsored by: Robert Klemme. - Fixed buffer scaling in execute_external_filter() that could lead - to crashes. Submitted by Yang Xia in #892. + Add SOCKS5 username/password support. + Based on a patch by Sam, improved by Ivan Romanov. + Closes Patch#141 and solves TODO#105. - Fixed crashes when executing external filters on platforms like - Mac OS X. Reported by Jonathan McKenzie on ijbswa-users@. + Bump the maximum number of action and filter files + to 100 each. + Sponsored by: Robert Klemme - Properly parse ACL directives with ports when compiled with HAVE_RFC2553. - Previously the port wasn't removed from the host and in case of - 'permit-access 127.0.0.1 example.org:80' Privoxy would try (and fail) - to resolve "example.org:80" instead of example.org. - Reported by Pak Chan on ijbswa-users@. + Fixed handling of filters with "split-large-forms 1" + when using the CGI editor. + Reported by withoutname in #921. - Check requests more carefully before serving them forcefully - when blocks aren't enforced. Privoxy always adds the force token - at the beginning of the path, but would previously accept it anywhere - in the request line. This could result in requests being served that - should be blocked. For example in case of pages that were loaded with - force and contained JavaScript to create additionally requests that - embed the origin URL (thus inheriting the force prefix). - The bug is not considered a security issue and the fix does not make - it harder for remote sites to intentionally circumvent blocks if - Privoxy isn't configured to enforce them. - Fixes #1695 reported by Korda. + Better detect a mismatch of connection details when + figuring out whether or not a connection can be reused. - Normalize the request line in intercepted requests to make rewriting - the destination more convenient. Previously rewrites for intercepted - requests were expected to fail unless $hostport was being used, but - they failed "the wrong way" and would result in an out-of-memory - message (vanilla host patterns) or a crash (extended host patterns). - Reported by "Guybrush Threepwood" in #1694. + Don't send a "Connection failure" message instead of the + "DNS failure" message. + Sponsored by: Robert Klemme - Enable socket lingering for the correct socket. - Previously it was repeatedly enabled for the listen socket - instead of for the accepted socket. The bug was found by - code inspection and did not cause any (reported) issues. + Let LOG_LEVEL_REQUEST log all requests. Previously unencrypted + requests were only logged with LOG_LEVEL_REQUEST when they weren't + crunched (in which case they were logged with LOG_LEVEL_CRUNCH). + This was documented behaviour, but logging all requests seems more useful. - Detect and reject parameters for parameter-less actions. - Previously they were silently ignored. + Fixed locking around localtime() and gmtime(). - Fixed invalid reads in internal and outdated pcre code. - Found with afl-fuzz and AddressSanitizer. + Removed OS/2 support. We haven't provided OS/2 packages in years, + it complicated the code and it depended on a fallback snprintf() + implementation which is GPLv2 only. - Prevent invalid read when loading invalid action files. - Found with afl-fuzz and AddressSanitizer. + Remove the fallback snprintf() implementation + Now that OS/2 support is gone we no longer need it. - Windows build: Use the correct function to close the event handle. - It's unclear if this bug had a negative impact on Privoxy's behaviour. - Reported by Jarry Xu in #891. + Fixed a bunch of format specifiers log messages. - In case of invalid forward-socks5(t) directives, use the - correct directive name in the error messages. Previously they - referred to forward-socks4t failures. - Reported by Joel Verhagen in #889. + Added a missing apostrophe in the 'More Privoxy' menu. + + + + + Explicitly prevent use of FEATURE_CONNECTION_SHARING + without FEATURE_CONNECTION_KEEP_ALIVE. It makes no sense + and does not compile anyway. + Sponsored by: Robert Klemme + + + + + Fix build without FEATURE_CONNECTION_KEEP_ALIVE. + Sponsored by: Robert Klemme + + + + + Downgrade the 'Graceful termination requested' message + to LOG_LEVEL_INFO as it isn't an error. + Sponsored by: Robert Klemme + + + + + decompress_iob(): Downgrade the no-content message to LOG_LEVEL_RE_FILTER + While at it, fix a typo in a comment. + Sponsored by: Robert Klemme + + + + + Fixed a couple of cppcheck warnings. + + + + + Rename LOG_LEVEL_GPC to LOG_LEVEL_REQUEST. + Only the shadow knows what "GPC" is supposed to stand for. + + + + + Remove SourceForge references in copyright headers. + + + + + Upgrade a bunch of links to the homepage to https://. + + + + + Add 'no-brotli-accepted' filter which prevents the + use of Brotli compression. + + + + + Changed license for pcrs to GPLv2+ after getting the + permission from Andreas. This allows to redistribute + Privoxy under the GPLv3 which is required when linking + to future mbedTLS versions which are expected to be + licensed under the Apache 2.0 license only. + + + + + Updated a bunch of tests that have to expect status code 403 + now after r1.168/070e904afa5. + + + + + Lowercase the host name in the request line. + + + + + Only set SOURCE_DATE_EPOCH if it's not already set so + distributions can overwrite it through the environment. @@ -158,74 +321,111 @@ - General improvements: + Documentation changes: - Set NO_DELAY flag for the accepting socket. This significantly reduces - the latency if the operating system is not configured to set the flag - by default. Reported by Johan Sintorn in #894. + Explain that Privoxy has to be distributed under the + GPLv3 (or later) when linked with an MbedTLS version + that is licensed under the Apache 2.0 license. - Allow to build with mingw x86_64. Submitted by Rustam Abdullaev in #135. + Import the GNU GPLv3 and include it the user manual. - Introduce the new forwarding type 'forward-webserver'. - Currently it is only supported by the forward-override{} action and - there's no config directive with the same name. The forwarding type - is similar to 'forward', but the request line only contains the path - instead of the complete URL. + Clarify FEATURE_FORCE_LOAD's description. It allows to bypass + blocking not filtering and only does it if blocks aren't enforced. + Reported by: Robert Klemme - The CGI editor no longer treats 'standard.action' special. - Nowadays the official "standards" are part of default.action - and there's no obvious reason to disallow editing them through - the cgi editor anyway (if the user decided that the lack of - authentication isn't an issue in her environment). + FAQ: Remove Zwiebelfreunde e.V. from the list of fiduciary sponsors + As of 2021 they no longer handle donations for foreign organisations + due to lack of resources. - Improved error messages when rejecting intercepted requests - with unknown destination. + FAQ: Remove an obsolete comment with a link to the long-gone PDF manual. - A couple of log messages now include the number of active threads. + FAQ: Add a link to the TODO list. - Removed non-standard Proxy-Agent headers in HTTP snipplets - to make testing more convenient. + FAQ: Change the sponsor amounts to USD slightly rounding the + converted amounts up to get simple numbers. + Receiving USD is apparently easier for SPI and SPI is + preferred by sponsors as they can send invoices. - Include the error code for pcre errors Privoxy does not recognize. + Advertise the client-tags CGI page in the user manual. - Config directives with numerical arguments are checked more carefully. + Stop advertising the show-version CGI page which no longer exists. - Privoxy's malloc() wrapper has been changed to prevent zero-size - allocations which should only occur as the result of bugs. + Add yet another reason why +prevent-compression may cause problems. - Various cosmetic changes. + Don't claim that contributors need ssh. It's only needed for committers. + + + + + Replace obsolete CVS instructions with Git instructions. + + + + + Remove an obsolete comment + + + + + + + + Config file changes: + + + + Change the suggested default-server-timeout to 5 to match the + suggested keep-alive-timeout. Otherwise using the defaults would + result in Privoxy reducing the default-server-timeout and logging + an error message. + Sponsored by: Robert Klemme + + + + + Update the 'debug 1' description. + + + + + Add a missing 'client-specific-tag' directive. + + + + + Comment out trusted-cgi-referer pointing to example.org. @@ -237,51 +437,227 @@ - Unblock ".deutschlandradiokultur.de/". - Reported by u302320 in #924. + Block requests to /(.*/)?piwik\.php + + + + + Block requests to .connectaserver.de/ - Add two fast-redirect exceptions for "yandex.ru". + Block requests to pixel.inforsea.com/ - Disable filter{banners-by-size} for ".plasmaservice.de/". + Block requests to t.vi-serve.com/ - Unblock "klikki.fi/adv/". + Block requests to .ioam.de/ - Block requests for "resources.infolinks.com/". - Reported by "Black Rider" on ijbswa-users@. + Block requests to t.9gag.com/img.gif - Block a bunch of criteo domains. - Reported by Black Rider. + Block requests to .pixel.parsely.com/ as image - Block "abs.proxistore.com/abe/". - Reported by Black Rider. + Block requests to pixel.wp.com/ - Disable filter{banners-by-size} for ".black-mosquito.org/". + Disable fast-redirects for .librarything.com/ - Disable fast-redirects for "disqus.com/". + Disable fast-redirects for issue.freebsdfoundation.org/ + + + + + Disable fast-redirects for .twitter.com/.*origin=http + + + + + Unblock belco24.de/ + + + + + Add fast-redirects exception for .wikipedia.org/ + + + + + Add fast-redirects exception for oss-fuzz.com/ + + + + + Disable fast-redirects for .consensu.org/delivery/pixel\.php + and block the requests as image instead + + + + + Unblock .adbinstaller.com/ + Reported by lvm in #942. + + + + + Unblock .adbshell.com + Reported by lvm in #942. + + + + + Unblock .tagesschau.de/ + + + + + Disable fast-redirects for collector.githubapp.com/ + and block requests to it as image instead + + + + + Unblock 'ada*.' + + + + + Add fast-redirects{} exception for sourcepoint.vice.com/ + + + + + Unblock adaway.org/ + Reported by DRS David Soft in AF#945. + + + + + Change two block reasons that previously were the same. + Sponsored by: Robert Klemme + + + + + Added a +delay-response{} test. + + + + + Updated the location of the development version + of default.action.master. + + + + + + + + Privoxy-Log-Parser: + + + + Added a --keep-date option to keep the date in highlighted messages. + + + + + Highlight new log messages. + + + + + Make gather_loglevel_clf_stats() more tolerant. While at it, + count all CLF messages as requests, even if the request is invalid. + + + + + Only show HTTP version distribution if at least one version has been detected. + + + + + Only show crunch statistics if crunches were detected. + + + + + Warn if the request counts differ. + + + + + Generate statistics if the log only contains LOG_LEVEL_CLF messages + so it can be used with vanilla webserver logs. + Previously Privoxy-specific "Request:" messages were required. + + + + + Align the client-HTTP-version distribution like other distributions + + + + + Bump version to 0.9.1 + + + + + Include status code distribution in the stats. + + + + + Let the statistics include the size of the content Privoxy + transferred excluding HTTP headers. + + + + + Get with the program and expect all requests to be logged with LOG_LEVEL_REQUEST. + It's no longer necessary to count both LOG_LEVEL_REQUEST and + LOG_LEVEL_CRUNCH messages to get the total number of requests. + + + + + Leverage the LOG_LEVEL_CLF message to gather statistics that where + previously taken from LOG_LEVEL_HEADER lines. This results in less + confusing results if https inspection is enabled in which case there + are two LOG_LEVEL_HEADER lines with request lines. + Sponsored by: Robert Klemme + + + + + Properly highlight the filter results message. Previously a brace got lost. + + + + + Prefer the number of CLF lines to get the total number of requests + as it works with older Privoxy versions as well. @@ -289,26 +665,31 @@ - Documentation improvements: + Privoxy-Regression-Test: - FAQ: Explicitly point fingers at ASUS as an example of a - company that has been reported to force malware based on - Privoxy upon its customers. + Turn curl's globbing mode off so we can allow more characters in URLs. - Correctly document the action type for a bunch of "multi-value" - actions that were incorrectly documented to be "parameterized". - Reported by Gregory Seidman on ijbswa-users@. + Allow '[' and ']' in URLs. - Fixed the documented type of the forward-override{} action - which is obviously 'parameterized'. + Include the action file when complaining about missing Sticky Actions. + + + + + Fix a sentence in the documentation. + + + + + Bump version to 0.7.1 @@ -316,23 +697,35 @@ - Website improvements: + url-pattern-translator: - Users who don't trust binaries served by SourceForge - can get them from a mirror. Migrating away from SourceForge - is planned for 2016 (TODO list item #53). + Detect a couple of pattern prefixes case-insensitively. + Sponsored by: Robert Klemme - The website is now available as onion service - (http://jvauzb4sb3bwlsnc.onion/). + Skip CLIENT-TAG patterns. + Sponsored by: Robert Klemme + + + + + Skip patterns that have already been converted. + It should now be safe to "convert" a file multiple times. + Sponsored by: Robert Klemme + + + + + Add the new 'PCRE-HOST-PATTERN:' prefix. + Sponsored by: Robert Klemme - +