<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>What’s new in Varnish? on Varnish Cache</title><link>https://www.varnish.org/docs/whats-new/</link><description>Recent content in What’s new in Varnish? on Varnish Cache</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 16 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.varnish.org/docs/whats-new/index.xml" rel="self" type="application/rss+xml"/><item><title>Changes in Varnish 4.1</title><link>https://www.varnish.org/docs/whats-new/changes-4.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-4.1/</guid><description>&lt;!-- Copyright (c) 2016 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-4-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Varnish 4.1 is the continuation of the new streaming architecture seen
in Varnish 4.0.&lt;/p&gt;
&lt;h2 id="proactive-security-features"&gt;Proactive security features&lt;/h2&gt;
&lt;p&gt;New in 4.1 is support for different kinds of privilege separation methods,
collectively described as jails.&lt;/p&gt;
&lt;p&gt;On most systems, the Varnish parent process will now drop effective
privileges to normal user mode when not doing operations needing special
access.&lt;/p&gt;</description></item><item><title>Changes in Varnish 5.0</title><link>https://www.varnish.org/docs/whats-new/changes-5.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-5.0/</guid><description>&lt;!-- Copyright (c) 2016 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-5-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Varnish 5.0 changes some (mostly) internal APIs and adds some major new
features over Varnish 4.1.&lt;/p&gt;
&lt;h2 id="separate-vcl-files-and-vcl-labels"&gt;Separate VCL files and VCL labels&lt;/h2&gt;
&lt;p&gt;Varnish 5.0 supports jumping from the active VCL’s &lt;code&gt;vcl_recv{}&lt;/code&gt; to
another VCL via a VCL label.&lt;/p&gt;
&lt;p&gt;The major use of this will probably be to have a separate VCL for
each domain/vhost, in order to untangle complex VCL files, but
it is not limited to this criteria, it would also be possible to
send all POSTs, all JPEG images or all traffic from a certain
IP range to a separate VCL file.&lt;/p&gt;</description></item><item><title>Changes in Varnish 5.1</title><link>https://www.varnish.org/docs/whats-new/changes-5.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-5.1/</guid><description>&lt;!-- Copyright (c) 2017 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-5-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We have a couple of new and interesting features in Varnish 5.1,
and we have a lot of smaller improvements and bugfixes all over
the place, in total we have made about 750 commits since Varnish 5.0,
so this is just some of the highlights.&lt;/p&gt;
&lt;p&gt;Probably the biggest change in Varnish 5.1 is that a couple of very
significant contributors to Varnish have changed jobs, and therefore
stopped being active contributors to the Varnish Project.&lt;/p&gt;</description></item><item><title>Changes in Varnish 5.2</title><link>https://www.varnish.org/docs/whats-new/changes-5.2/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-5.2/</guid><description>&lt;!-- Copyright (c) 2017 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-5-2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Varnish 5.2 is mostly changes under the hood so most varnish
installations will be able to upgrade with no modifications.&lt;/p&gt;
&lt;p&gt;&lt;a id="whatsnew-new-vmods"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="new-vmods-in-the-standard-distribution"&gt;New VMODs in the standard distribution&lt;/h2&gt;
&lt;p&gt;We have added three new VMODs to the varnish project.&lt;/p&gt;
&lt;h3 id="vmod-blob"&gt;VMOD blob&lt;/h3&gt;
&lt;p&gt;We have added the variables &lt;code&gt;req.hash&lt;/code&gt; and &lt;code&gt;bereq.hash&lt;/code&gt; to VCL,
which contain the hash value computed by Varnish for the current
request, for use in cache lookup. Their data type is BLOB, which
represents opaque data of any length – the new variables contain
the raw binary hashes.&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.0</title><link>https://www.varnish.org/docs/whats-new/changes-6.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.0/</guid><description>&lt;!-- Copyright (c) 2018 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-6-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Usually when we do dot-zero releases in Varnish, it means that
users are in for a bit of work to upgrade to the new version,
but 6.0 is actually not that scary, because most of the changes
are either under the hood or entirely new features.&lt;/p&gt;
&lt;p&gt;The biggest user-visible change is probably that we, or to be totally
honest here: Geoff Simmons (UPLEX), have added support for Unix Domain
Sockets, both &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.0/#upd-6-0-uds-acceptor"&gt;for clients&lt;/a&gt; and for
&lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.0/#upd-6-0-uds-backend"&gt;backend servers&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.1</title><link>https://www.varnish.org/docs/whats-new/changes-6.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.1/</guid><description>&lt;!-- Copyright (c) 2018 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-6-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This release is a maintenance release, so while there are many actual
changes, and of course many bugfixes, they should not have little to no
impact on running Varnish installations.&lt;/p&gt;
&lt;h2 id="nothing-to-see-here-really"&gt;Nothing to see here, really&lt;/h2&gt;
&lt;p&gt;Since new users often forget to vcl.discard their old VCLs, we have
added a warning when you have more than 100 VCLs loaded. There are
parameters to set the threshold and decide what happens when it is
exceeded (ignore/warn/error).&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.2</title><link>https://www.varnish.org/docs/whats-new/changes-6.2/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.2/</guid><description>&lt;!-- Copyright (c) 2019 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-2019-03"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.2/#whatsnew-upgrading-2019-03"&gt;Upgrading to Varnish 6.2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;p&gt;Cache lookups have undergone a number of optimizations, among them
reduction in lock contention, and to shorten and simplify the critical
section of lookup code. We expect that this will improve performance
and scalability.&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.3</title><link>https://www.varnish.org/docs/whats-new/changes-6.3/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.3/</guid><description>&lt;!-- Copyright (c) 2020 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-6-3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.3/#whatsnew-upgrading-6-3"&gt;Upgrading to Varnish 6.3&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;A new &lt;a href="https://www.varnish.org/docs/reference/varnishd/#ref-param-pipe-sess-max"&gt;pipe_sess_max&lt;/a&gt; parameter allows to limit the number of
concurrent pipe transactions. The default value is zero and means unlimited,
for backwards compatibility.&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.4.0</title><link>https://www.varnish.org/docs/whats-new/changes-6.4/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.4/</guid><description>&lt;!-- Copyright (c) 2020 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-6-4"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.4/#whatsnew-upgrading-6-4"&gt;Upgrading to Varnish 6.4.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="bugs"&gt;bugs&lt;/h3&gt;
&lt;p&gt;Numerous bugs have been fixed.&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.5.0</title><link>https://www.varnish.org/docs/whats-new/changes-6.5/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.5/</guid><description>&lt;!-- Copyright (c) 2020 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-6-5"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.5/#whatsnew-upgrading-6-5"&gt;Upgrading to Varnish 6.5.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="access-control-lists-acls"&gt;Access Control Lists (ACLs)&lt;/h3&gt;
&lt;p&gt;The VCL compiler now emits warnings if network numbers used in ACLs do
not have an all-zero host part (as, for example,
&lt;code&gt;&amp;quot;192.168.42.42&amp;quot;/24&lt;/code&gt;). By default, such ACL entries are fixed to
all-zero and that fact logged with the &lt;code&gt;ACL&lt;/code&gt; VSL tag.&lt;/p&gt;</description></item><item><title>Changes in Varnish 6.6</title><link>https://www.varnish.org/docs/whats-new/changes-6.6/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-6.6/</guid><description>&lt;!-- Copyright 2021 UPLEX Nils Goroll Systemoptimierung
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-6-6"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-6.6/#whatsnew-upgrading-6-6"&gt;Upgrading to Varnish 6.6&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;varnishd&lt;/code&gt; now supports the &lt;code&gt;-b none&lt;/code&gt; argument to start with
only the builtin VCL and no backend at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;validate_headers&lt;/code&gt; parameter has been added to control
&lt;a href="https://www.varnish.org/"&gt;header validation&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.0</title><link>https://www.varnish.org/docs/whats-new/changes-7.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.0/</guid><description>&lt;!-- Copyright 2021 Varnish Software
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-changes-7-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.0/#whatsnew-upgrading-7-0"&gt;Upgrading to Varnish 7.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="pcre2"&gt;PCRE2&lt;/h2&gt;
&lt;p&gt;One major change for this release is the migration of the regular expression
engine from PCRE to PCRE2. This change should be mostly transparent anywhere
regular expressions are used, like VCL, ban expressions, VSL queries etc.&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.1</title><link>https://www.varnish.org/docs/whats-new/changes-7.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.1/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.1/#whatsnew-upgrading-7-1"&gt;Upgrading to Varnish 7.1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;A new kind of parameters exists: deprecated aliases. Their documentation is
minimal, mainly referring to the actual symbols they alias. They are not
listed in the CLI, unless referred to explicitly.&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.2</title><link>https://www.varnish.org/docs/whats-new/changes-7.2/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.2/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.2/#whatsnew-upgrading-7-2"&gt;Upgrading to Varnish 7.2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="extensions"&gt;Extensions&lt;/h3&gt;
&lt;p&gt;From the very first days of Varnish, we have been talking about having
an extension points for “more advanced stuff” and we did, by and large,
keep a place ready for it in the overall architecture.&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.3</title><link>https://www.varnish.org/docs/whats-new/changes-7.3/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.3/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.3/#whatsnew-upgrading-7-3"&gt;Upgrading to Varnish 7.3&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;There is a new parameter &lt;code&gt;transit_buffer&lt;/code&gt; disabled by default to limit the
amount of storage used for uncacheable responses. This is useful in situations
where slow clients may consume large but uncacheable objects, to prevent them
from filling up storage too fast at the expense of cacheable resources. When
transit buffer is enabled, a client request will effectively hold its backend
connection open until the client response delivery completes.&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.4</title><link>https://www.varnish.org/docs/whats-new/changes-7.4/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.4/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-4"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.4/#whatsnew-upgrading-7-4"&gt;Upgrading to Varnish 7.4&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;p&gt;HTTP/2 header field validation is now more strict with respect to
allowed characters.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.varnish.org/docs/reference/vcl-step/#vcl-step-7"&gt;VCL-steps&lt;/a&gt; manual page has been added to document the VCL
state machines.&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.5</title><link>https://www.varnish.org/docs/whats-new/changes-7.5/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.5/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-5"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.5/#whatsnew-upgrading-7-5"&gt;Upgrading to Varnish 7.5&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;h3 id="cve-2023-44487"&gt;CVE-2023-44487&lt;/h3&gt;
&lt;p&gt;Also known as the HTTP/2 Rapid Reset Attack, or &lt;a href="https://varnish-cache.org/security/VSV00013.html"&gt;VSV 13&lt;/a&gt;, this vulnerability
is addressed with two mitigations introducing several changes since the 7.4.0
release of Varnish Cache. The first one detects and stops Rapid Reset attacks
and the second one interrupts the processing of HTTP/2 requests that are no
longer open (stream reset, client disconnected etc).&lt;/p&gt;</description></item><item><title>Changes in Varnish 7.6</title><link>https://www.varnish.org/docs/whats-new/changes-7.6/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.6/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-6"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.6/#whatsnew-upgrading-7-6"&gt;Upgrading to Varnish 7.6&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="changes-applying-to-most-varnish-cache-programs"&gt;Changes applying to most varnish-cache programs&lt;/h2&gt;
&lt;p&gt;The environment variable &lt;code&gt;VARNISH_DEFAULT_N&lt;/code&gt; now provides the default “varnish
name” / “workdir” as otherwise specified by he &lt;code&gt;-n&lt;/code&gt; argument to &lt;code&gt;varnishd&lt;/code&gt;
and &lt;code&gt;varnish*&lt;/code&gt; utilities except &lt;code&gt;varnishtest&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Changes in Varnish Cache 9.0</title><link>https://www.varnish.org/docs/whats-new/changes-9.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-9.0/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-9-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This version is released under a new name, which implies a number of relevant
changes to Varnish Cache deployments. We strongly recommend to read
&lt;a href="https://www.varnish.org/docs/whats-new/upgrading-9.0/#whatsnew-upgrading-9-0"&gt;Upgrading to Varnish Cache 9.0&lt;/a&gt; first.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish Cache, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="other-changes-in-varnishd"&gt;Other changes in varnishd&lt;/h3&gt;
&lt;p&gt;Varnish Extensions (VEXTs) can now be loaded by specifying their basename as
&lt;code&gt;-E&amp;lt;name&amp;gt;&lt;/code&gt;. When &lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt; is not a path (does not contain &lt;code&gt;/&lt;/code&gt;), a search
in &lt;code&gt;vmod_path&lt;/code&gt; is conducted for &lt;code&gt;libvmod_&amp;lt;name&amp;gt;.so&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Changes in Varnish-Cache 7.7</title><link>https://www.varnish.org/docs/whats-new/changes-7.7/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-7.7/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-7-7"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the new
version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-7.7/#whatsnew-upgrading-7-7"&gt;Upgrading to Varnish-Cache 7.7&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: In this Varnish-Cache release, we changed how timestamps are taken for
the http2 protocol, which could look like a performance regression, but is not.
See &lt;a href="#whatsnew-changes-7-7-h2-timestamps"&gt;http2 related timestamps&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish-Cache, with links to
issues that have been fixed and pull requests that have been merged, may be
found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Changes in Varnish-Cache 8.0</title><link>https://www.varnish.org/docs/whats-new/changes-8.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/changes-8.0/</guid><description>&lt;p&gt;&lt;a id="whatsnew-changes-8-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For information about updating your current Varnish deployment to the
new version, see &lt;a href="https://www.varnish.org/docs/whats-new/upgrading-8.0/#whatsnew-upgrading-8-0"&gt;Upgrading to Varnish-Cache 8.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A more detailed and technical account of changes in Varnish, with
links to issues that have been fixed and pull requests that have been
merged, may be found in the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;Read only parameter can no longer be set through an alias.&lt;/p&gt;
&lt;p&gt;Deprecated aliases for parameters can no longer be set read only, it should
instead be done directly on the parameters they point to.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 4.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-4.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-4.0/</guid><description>&lt;!-- Copyright (c) 2016 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-4-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="changes-to-vcl"&gt;Changes to VCL&lt;/h2&gt;
&lt;p&gt;The backend fetch parts of VCL have changed in Varnish 4. We’ve tried to
compile a list of changes needed to upgrade here.&lt;/p&gt;
&lt;h3 id="version-statement"&gt;Version statement&lt;/h3&gt;
&lt;p&gt;To make sure that people have upgraded their VCL to the current
version, Varnish now requires the first line of VCL to indicate the
VCL version number:&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 4.1</title><link>https://www.varnish.org/docs/whats-new/upgrading-4.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-4.1/</guid><description>&lt;!-- Copyright (c) 2016 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-4-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="changes-to-vcl"&gt;Changes to VCL&lt;/h2&gt;
&lt;h3 id="data-type-conversion-functions-now-take-a-fallback"&gt;Data type conversion functions now take a fallback&lt;/h3&gt;
&lt;p&gt;Data type conversion functions in the std vmod now takes an additional
argument &lt;em&gt;fallback&lt;/em&gt;, which is returned if the conversion does not succeed.&lt;/p&gt;
&lt;h3 id="version-statement-is-kept"&gt;Version statement is kept&lt;/h3&gt;
&lt;p&gt;The VCL syntax has not chanced significantly, and as such the Varnish 4.0
version marker is kept for Varnish 4.1.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 5.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-5.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-5.0/</guid><description>&lt;!-- Copyright (c) 2016 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-5-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="changes-to-vcl"&gt;Changes to VCL&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;All VCL Objects should now be defined before used
&lt;ul&gt;
&lt;li&gt;in particular, this is now required for ACLs. The error message
for ACLs being used before being defined is confusing - see PR #2021:
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;Name &amp;lt;acl&amp;gt; is a reserved name
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;VCL names are restricted to alphanumeric characters, dashes (-) and
underscores (&lt;em&gt;). In addition, the first character should be alphabetic.
That is, the name should match “[A-Za-z][A-Za-z0-9&lt;/em&gt;-]*”.&lt;/li&gt;
&lt;li&gt;Like strings, backends and integers can now be used as boolean
expressions in if statements. See &lt;code&gt;vcl(7)&lt;/code&gt; for details.&lt;/li&gt;
&lt;li&gt;Add support to perform matches in assignments, obtaining a boolean
as result:
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;set req.http.foo = req.http.bar ~ &amp;#34;bar&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Returned values from functions and methods’ calls can be thrown away.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="backends"&gt;backends&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for the PROXY protocol via &lt;code&gt;.proxy_header&lt;/code&gt; attribute.
Possible values are 1 and 2, corresponding to the PROXY protocol
version 1 and 2, respectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_recv"&gt;vcl_recv&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;return (vcl(label))&lt;/code&gt; to switch to the VCL labelled label.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;rollback&lt;/code&gt; function has been retired.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_hit"&gt;vcl_hit&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Replace &lt;code&gt;return (fetch)&lt;/code&gt; with &lt;code&gt;return (miss)&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_backend_"&gt;vcl_backend_*&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added read access to &lt;code&gt;remote.ip&lt;/code&gt;, &lt;code&gt;client.ip&lt;/code&gt;, &lt;code&gt;local.ip&lt;/code&gt; and
&lt;code&gt;server.ip&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_backend_fetch"&gt;vcl_backend_fetch&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added write access to &lt;code&gt;bereq.body&lt;/code&gt;, the request body. Only &lt;code&gt;unset&lt;/code&gt;
is supported at this time.&lt;/li&gt;
&lt;li&gt;We now send request bodies by default (see
&lt;a href="https://www.varnish.org/docs/whats-new/changes-5.0/#whatsnew-changes-5-0-reqbody"&gt;Request Body sent always / “cacheable POST”&lt;/a&gt;). To keep the previous behaviour
add the following code before any &lt;code&gt;return (..)&lt;/code&gt; statement in this
subroutine:
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;if (bereq.method == &amp;#34;GET&amp;#34;) {
 unset bereq.body;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_backend_error"&gt;vcl_backend_error&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added write access to &lt;code&gt;beresp.body&lt;/code&gt;, the response body. This may
replace &lt;code&gt;synthetic()&lt;/code&gt; in future releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_deliver"&gt;vcl_deliver&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added read access to &lt;code&gt;obj.ttl&lt;/code&gt;, &lt;code&gt;obj.age&lt;/code&gt;, &lt;code&gt;obj.grace&lt;/code&gt; and
&lt;code&gt;obj.keep&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vcl_synth"&gt;vcl_synth&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added write access to &lt;code&gt;resp.body&lt;/code&gt;, the response body. This may replace
&lt;code&gt;synthetic()&lt;/code&gt; in future releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="management-interface"&gt;Management interface&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To disable CLI authentication use &lt;code&gt;-S none&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;n_waitinglist&lt;/code&gt; statistic removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="changes-to-parameters"&gt;Changes to parameters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;ban_lurker_holdoff&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Removed &lt;code&gt;session_max&lt;/code&gt;. This parameter actually had no effect since
4.0 but might come back in a future release.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vcl_path&lt;/code&gt; is now a colon-separated list of directories, replacing
&lt;code&gt;vcl_dir&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vmod_path&lt;/code&gt; is now a colon-separated list of directories, replacing
&lt;code&gt;vmod_dir&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="other-changes"&gt;Other changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;varnishstat(1)&lt;/code&gt; -f option accepts a &lt;code&gt;glob(7)&lt;/code&gt; pattern.&lt;/li&gt;
&lt;li&gt;Cache-Control and Expires headers for uncacheable requests (i.e. passes)
will not be parsed. As a result, the RFC variant of the TTL VSL tag
is no longer logged.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Upgrading to Varnish 5.1</title><link>https://www.varnish.org/docs/whats-new/upgrading-5.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-5.1/</guid><description>&lt;!-- Copyright (c) 2017-2019 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-5-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="varnishd-command-line-options"&gt;varnishd command-line options&lt;/h2&gt;
&lt;p&gt;If you have to change anything at all for version 5.1, then most
likely the command-line options for varnishd in your start scripts,
because we have tightened restrictions on which options may be used
together. This has served mainly to clarify the use of options for
testing purposes, for example using &lt;code&gt;varnishd -C&lt;/code&gt; to check a VCL
source for syntactic correctness. We have also added some new options.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 5.2</title><link>https://www.varnish.org/docs/whats-new/upgrading-5.2/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-5.2/</guid><description>&lt;!-- Copyright (c) 2017-2019 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-5-2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="varnish-statistics-and-logging"&gt;Varnish statistics and logging&lt;/h2&gt;
&lt;p&gt;There are extensive changes under the hood with respect to statistics
counters, but these should all be transparent at the user-level.&lt;/p&gt;
&lt;h2 id="varnishd-parameters"&gt;varnishd parameters&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;vsm_space&lt;/code&gt; and &lt;code&gt;cli_buffer&lt;/code&gt; parameters are now deprecated and
ignored. They will be removed in a future major release.&lt;/p&gt;
&lt;p&gt;The updated shared memory implementation manages space automatically, so
it no longer needs &lt;code&gt;vsm_space&lt;/code&gt;. Memory for the CLI command buffer is now
dynamically allocated.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.0/</guid><description>&lt;!-- Copyright (c) 2018-2019 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-6-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="upd-6-0-uds-acceptor"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="unix-domain-sockets-as-listen-addresses"&gt;Unix domain sockets as listen addresses&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;varnishd -a&lt;/code&gt; command-line argument now has this form, where the
&lt;code&gt;address&lt;/code&gt; may be a Unix domain socket, identified as such when it
begins with &lt;code&gt;/&lt;/code&gt; (see varnishd &lt;a href="https://www.varnish.org/docs/reference/varnishd/#ref-varnishd-options"&gt;OPTIONS&lt;/a&gt;):&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;-a [name=][address][:port][,PROTO][,user=&amp;lt;user&amp;gt;][,group=&amp;lt;group&amp;gt;][,mode=&amp;lt;mode&amp;gt;]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For example:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;varnishd -a /path/to/listen.sock,PROXY,user=vcache,group=varnish,mode=660
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That means that an absolute path must always be specified for the
socket file. The socket file is created when Varnish starts, and any
file that may exist at that path is unlinked first. You can use the
optional &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;group&lt;/code&gt; and &lt;code&gt;mode&lt;/code&gt; sub-arguments to set
permissions of the new socket file; use names for &lt;code&gt;user&lt;/code&gt; and
&lt;code&gt;group&lt;/code&gt; (not numeric IDs), and a 3-digit octal number for
&lt;code&gt;mode&lt;/code&gt;. This is done by the management process, so creating the
socket file and setting permissions are done with the privileges of
the management process owner.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.1</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.1/</guid><description>&lt;!-- Copyright (c) 2018-2019 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-6-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A configuration for Varnish 6.0.x will run for version 6.1 without
changes. There has been a subtle change in the interpretation of the
VCL variable &lt;code&gt;beresp.keep&lt;/code&gt; under specific circumstances, as
discussed below. Other than that, the changes in 6.1 are new features,
described in the following.&lt;/p&gt;
&lt;h2 id="varnishd-parameters"&gt;varnishd parameters&lt;/h2&gt;
&lt;p&gt;We have added the &lt;a href="https://www.varnish.org/docs/reference/varnishd/#ref-param-max-vcl"&gt;max_vcl&lt;/a&gt; parameter to set a
threshold for the number of loaded VCL programs, since it is a common
error to let previous VCL instances accumulate without discarding
them. The remnants of undiscarded VCLs take the form of files in the
working directory of the management process. Over time, too many of
these may take up significant storage space, and administrative
operations such as &lt;code&gt;vcl.list&lt;/code&gt; may become noticeably slow, or even
time out, when Varnish has to iterate over many files.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.2</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.2/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.2/</guid><description>&lt;!-- Copyright (c) 2019 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-2019-03"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-vcl-2019-03"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="vcl"&gt;VCL&lt;/h2&gt;
&lt;p&gt;VCL programs for Varnish 6.1 can be expected to run without changes in
the new version.&lt;/p&gt;
&lt;p&gt;A VCL load will now issue a warning, but does not fail as previously,
if a backend declaration uses the &lt;code&gt;.path&lt;/code&gt; field to specify a Unix
domain socket, but the socket file does not exist or is not accessible
at VCL load time. This makes it possible to start the peer component
listening at the socket, or set its permissions, after Varnish starts
or the VCL is loaded. Backend fetches fail if the socket is not
accessible by the time the fetch is attempted.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.3</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.3/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.3/</guid><description>&lt;!-- Copyright (c) 2020 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-6-3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="for-users-of-many-andor-labeled-vcls"&gt;For users of many and/or labeled VCLs&lt;/h2&gt;
&lt;p&gt;Users of the advanced mechanics behind the &lt;code&gt;vcl.state&lt;/code&gt; CLI command
(most likely used via &lt;code&gt;varnishadm&lt;/code&gt;) should be aware of the following
changes, which may require adjustments to (or, more likely, allow for
simplifications of) scripts/programs interfacing with varnish:&lt;/p&gt;
&lt;p&gt;The VCL &lt;code&gt;auto&lt;/code&gt; state has been streamlined. Conceptually, it used to
be a variant of the &lt;code&gt;warm&lt;/code&gt; state which would automatically cool
the vcl. Yet, cooling did not only transition the temperature, but
also the state, so &lt;code&gt;auto&lt;/code&gt; only worked one way - except that
&lt;code&gt;vcl.use&lt;/code&gt; or moving a label (by labeling another vcl) would also set
&lt;code&gt;auto&lt;/code&gt;, so a manual warm/cold setting would get lost.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.4.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.4/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.4/</guid><description>&lt;!-- Copyright (c) 2020 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-6-4"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Upgrading to Varnish 6.4 from 6.3 should not require any changes
to VCL.&lt;/p&gt;
&lt;p&gt;This document contains information about other relevant aspects which
should be considered when upgrading.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The hash algorithm of the &lt;code&gt;hash&lt;/code&gt; director was changed, so backend
selection will change once only when upgrading.&lt;/p&gt;
&lt;p&gt;Users of the &lt;code&gt;hash&lt;/code&gt; director are advised to consider using the
&lt;code&gt;shard&lt;/code&gt; director instead, which, amongst other advantages, offers
more stable backend selection through consistent hashing. See
&lt;a href="https://www.varnish.org/docs/reference/vmod_directors/#vmod-directors-3"&gt;VMOD directors - Varnish Directors Module&lt;/a&gt; for details.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.5.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.5/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.5/</guid><description>&lt;!-- Copyright (c) 2020 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-6-5"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="varnishstat"&gt;varnishstat&lt;/h2&gt;
&lt;p&gt;The JSON output (&lt;code&gt;-j&lt;/code&gt; option) changed to avoid having the &lt;code&gt;timestamp&lt;/code&gt;
field mixed with the counters fields. As such the schema version was bumped
from 0 to 1, and a &lt;code&gt;version&lt;/code&gt; top-level field was added to keep track of
future schema changes. Counters are in a new &lt;code&gt;counters&lt;/code&gt; top-level field.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 6.6</title><link>https://www.varnish.org/docs/whats-new/upgrading-6.6/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-6.6/</guid><description>&lt;!-- Copyright 2021 UPLEX Nils Goroll Systemoptimierung
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-6-6"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In general, this release should not come with relevant incompatibilities
to the previous release 6.5.&lt;/p&gt;
&lt;p&gt;VCL should continue to work as before except when rather exotic,
partly unintended and/or undocumented features are used.&lt;/p&gt;
&lt;h2 id="header-validation"&gt;Header Validation&lt;/h2&gt;
&lt;p&gt;Varnish now validates any headers set from VCL to contain only
characters allowed by RFC7230. A (runtime) VCL failure is triggered if
not. Such VCL failures, which result in &lt;code&gt;503&lt;/code&gt; responses, should be
investigated. As a last resort, the &lt;code&gt;validate_headers&lt;/code&gt; parameter can
be set to &lt;code&gt;false&lt;/code&gt; to avoid these VCL failures.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.0/</guid><description>&lt;!-- Copyright 2021 Varnish Software
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-upgrading-7-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="pcre2"&gt;PCRE2&lt;/h2&gt;
&lt;p&gt;The migration from PCRE to PCRE2 led to many changes, starting with a
change of build dependencies. See the current installation notes for
package dependencies on various platforms.&lt;/p&gt;
&lt;p&gt;Previously the Just In Time (jit) compilation of regular expressions was
always enabled at run time if it was present during the build. From now
on jit compilation is enabled by default, but can be disabled with the
&lt;code&gt;--disable-pcre2-jit&lt;/code&gt; configure option. Once enabled, jit compilation
is merely attempted and failures are ignored since they are not essential.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.1</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.1/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.1/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;p&gt;Varnish now has an infrastructure in place to rename parameters or VCL
variables while keeping a deprecated alias for compatibility.&lt;/p&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;There are plans to rename certain arguments. When this happens, aliases will
not be listed by &lt;code&gt;param.show [-j|-l]&lt;/code&gt; commands, but they will be displayed
by &lt;code&gt;param.show [-j] &amp;lt;param&amp;gt;&lt;/code&gt;. Systems operating on top of &lt;code&gt;varnishadm&lt;/code&gt; or
the Varnish CLI can be updated to anticipate this change with the help of the
&lt;code&gt;deprecated_dummy&lt;/code&gt; parameter added for testing purposes.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.2</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.2/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.2/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="parameters"&gt;Parameters&lt;/h3&gt;
&lt;p&gt;The following parameters are deprecated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vcc_allow_inline_c&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vcc_err_unref&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vcc_unsafe_path&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They can still be set as individual boolean parameters. The deprecated
aliases will be removed in a future release.&lt;/p&gt;
&lt;p&gt;They are replaced by the &lt;code&gt;vcc_feature&lt;/code&gt; bits parameter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;allow_inline_c&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;err_unref&lt;/code&gt; (enabled by default)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unsafe_path&lt;/code&gt; (enabled by default)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following commands are equivalent:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;param.set vcc_err_unref off
param.set vcc_feature -err_unref
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="identity"&gt;Identity&lt;/h3&gt;
&lt;p&gt;The server identity must be a valid HTTP token, which may pose a problem
to existing setups. For example &lt;code&gt;varnishd -i &amp;quot;edge server 1&amp;quot;&lt;/code&gt; is no
longer accepted. You can use something like &lt;code&gt;varnishd -i &amp;quot;edge-server-1&amp;quot;&lt;/code&gt;
instead.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.3</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.3/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.3/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="new-vsl-format"&gt;New VSL format&lt;/h2&gt;
&lt;p&gt;The binary format of Varnish logs changed to increase the space for VXIDs from
32 bits to 64. This is not a change that older versions of the Varnish logging
utilities can understand, and the new utilities can also not process old logs.&lt;/p&gt;
&lt;p&gt;There is no conversion tool from the old format to the new one, so this should
become a problem only when raw logs are stored for future processing. If old
binary logs need to remain usable, the only solution is to use a compatible
Varnish version and at the time of this release, the 6.0 branch is the only
one without an EOL date.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.4</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.4/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.4/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-4"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="important-vcl-changes"&gt;Important VCL Changes&lt;/h2&gt;
&lt;p&gt;When upgrading from Varnish-Cache 7.3, there is only one breaking
change to consider in VCL:&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;Content-Length&lt;/code&gt; and &lt;code&gt;Transfer-Encoding&lt;/code&gt; headers are now
&lt;em&gt;protected&lt;/em&gt;, they can neither be changed nor unset. This change was
implemented to avoid de-sync issues from accidental, inadequate
modifications of these headers.&lt;/p&gt;
&lt;p&gt;For the common use case of &lt;code&gt;unset (be)req.http.Content-Length&lt;/code&gt; to
dismiss a request body, &lt;code&gt;unset (be)req.body&lt;/code&gt; should be used.&lt;/p&gt;
&lt;h2 id="parameter-changes"&gt;Parameter Changes&lt;/h2&gt;
&lt;p&gt;The new &lt;code&gt;varnishd&lt;/code&gt; parameter &lt;code&gt;startup_timeout&lt;/code&gt; now specifically
replaces &lt;code&gt;cli_timeout&lt;/code&gt; for the initial startup only. In cases where
&lt;code&gt;cli_timeout&lt;/code&gt; was increased specifically to accommodate long startup
times (e.g. for storage engine initialization), &lt;code&gt;startup_timeout&lt;/code&gt;
should be used.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.5</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.5/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.5/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-5"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="logs"&gt;Logs&lt;/h2&gt;
&lt;p&gt;The optional reason field of &lt;code&gt;BackendClose&lt;/code&gt; records changed from a
description (for example “Receive timeout”) to a reason tag (for example
&lt;code&gt;RX_TIMEOUT&lt;/code&gt;). This will break VSL queries based on the reason field.&lt;/p&gt;
&lt;p&gt;Using a tag should however make queries more reliable:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;# before
varnishlog -q &amp;#39;BackendClose ~ &amp;#34;Receive timeout&amp;#34;&amp;#39;

# after
varnishlog -q &amp;#39;BackendClose[4] eq RX_TIMEOUT&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Such queries would no longer break when a description is changed.&lt;/p&gt;
&lt;h2 id="timeouts"&gt;Timeouts&lt;/h2&gt;
&lt;p&gt;The value zero for timeouts could mean either timing out immediately, never
timing out, or not having a value and falling back to another. The semantic
changed so zero always means non-blocking, timing out either immediately after
checking whether progress is possible, or after a millisecond in parts where
this can’t practically be done in a non-blocking fashion.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish 7.6</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.6/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.6/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-6"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In general, upgrading from Varnish 7.5 to 7.6 should not require any changes
besides the actual upgrade.&lt;/p&gt;
&lt;p&gt;The changes mentioned below are considered noteworthy nevertheless:&lt;/p&gt;
&lt;h2 id="noteworthy-changes-for-container-workloads"&gt;Noteworthy changes for container workloads&lt;/h2&gt;
&lt;p&gt;When &lt;code&gt;varnishd&lt;/code&gt; runs in a different PID namespace on Linux, typically in a
container deployment, &lt;code&gt;VSM_NOPID&lt;/code&gt; must be added to the environment of other
containers running programs attaching themselves to &lt;code&gt;varnishd&lt;/code&gt;’s shared
memory. This will otherwise fail liveness checks performed by VSM consumers.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish Cache 9.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-9.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-9.0/</guid><description>&lt;p&gt;This document only lists breaking changes that you should be aware of when
upgrading from Varnish Cache 8.x to Varnish Cache 9.0. For a complete list of
changes, please refer to the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt; and &lt;a href="https://www.varnish.org/docs/whats-new/changes-9.0/#whatsnew-changes-9-0"&gt;Changes in Varnish Cache 9.0&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="vsv00018"&gt;&lt;a href="https://www.varnish.org/docs/security/vsv00018/"&gt;VSV00018&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The handling of HTTP/1.1 requests to an “absolute form” URI has been fixed to
also cover the case where the absolute form has an empty path component:&lt;/p&gt;
&lt;p&gt;Previously, a request with an empty path like &lt;code&gt;GET http://example.com HTTP/1.1&lt;/code&gt; would cause &lt;code&gt;req.url&lt;/code&gt; to contain &lt;code&gt;http://example.com&lt;/code&gt; and the
&lt;code&gt;Host:&lt;/code&gt; header to remain unchanged. This has now been fixed:&lt;/p&gt;</description></item><item><title>Upgrading to Varnish-Cache 7.7</title><link>https://www.varnish.org/docs/whats-new/upgrading-7.7/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-7.7/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-7-7"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In general, upgrading from Varnish 7.6 to 7.7 should not require any changes
besides the actual upgrade.&lt;/p&gt;
&lt;p&gt;Note, however, that some log messages and in particular timestamps have changed,
see &lt;a href="https://www.varnish.org/docs/whats-new/changes-7.7/#whatsnew-changes-7-7"&gt;Changes in Varnish-Cache 7.7&lt;/a&gt; and
&lt;a href="https://www.varnish.org/docs/whats-new/changes-7.7/#whatsnew-changes-7-7-h2-timestamps"&gt;http2 related timestamps&lt;/a&gt; in particular. Here, we only
summarize the changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have changed how http/2 timestamps are taken.&lt;/li&gt;
&lt;li&gt;Details of http/2 related log entries have changed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;varnishncsa&lt;/code&gt; format &lt;code&gt;Varnish:handling&lt;/code&gt; now also outputs &lt;code&gt;hitmiss&lt;/code&gt;
and &lt;code&gt;hitpass&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;varnishncsa&lt;/code&gt; now outputs headers as they are received and sent.&lt;/li&gt;
&lt;li&gt;The CLI command &lt;code&gt;backend.list -j&lt;/code&gt; now outputs IPs/port information.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="upgrade-notes-for-vmod-developers"&gt;Upgrade notes for VMOD developers&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;vmodtool.py&lt;/code&gt; now creates a file &lt;code&gt;vmod_vcs_version.txt&lt;/code&gt; in the current
working directory when called from a git tree. This file is intended to
transport version control system information to builds from distribution
bundles.&lt;/p&gt;</description></item><item><title>Upgrading to Varnish-Cache 8.0</title><link>https://www.varnish.org/docs/whats-new/upgrading-8.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/upgrading-8.0/</guid><description>&lt;p&gt;&lt;a id="whatsnew-upgrading-8-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This document only lists breaking changes that you should be aware of when
upgrading from Varnish-Cache 7.x to 8.0. For a complete list of changes,
please refer to the &lt;a href="https://github.com/varnish/varnish/blob/main/doc/changes.rst"&gt;change log&lt;/a&gt; or &lt;a href="https://www.varnish.org/docs/whats-new/changes-8.0/#whatsnew-changes-8-0"&gt;Changes in Varnish-Cache 8.0&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="varnishd"&gt;varnishd&lt;/h2&gt;
&lt;h3 id="unknown-http-methods-handling"&gt;Unknown HTTP methods handling&lt;/h3&gt;
&lt;p&gt;In previous versions of Varnish, requests with an unknown/unsupported HTTP
method were by default piped to the backend. Starting with Varnish 8.0, the
default behaviour for such requests is to return a synthetic 501 response and
close the connection. Handling of custom HTTP methods can of course still be
implemented in your VCL.&lt;/p&gt;</description></item><item><title>Varnish 5.0 Release Note</title><link>https://www.varnish.org/docs/whats-new/relnote-5.0/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.varnish.org/docs/whats-new/relnote-5.0/</guid><description>&lt;!-- Copyright (c) 2016-2017 Varnish Software AS
SPDX-License-Identifier: BSD-2-Clause
See LICENSE file for full text of license --&gt;
&lt;p&gt;&lt;a id="whatsnew-relnote-5-0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the first Varnish release after the Varnish Project moved out
of Varnish Software’s basement, so to speak, and it shows.&lt;/p&gt;
&lt;p&gt;But it is also our 10 year anniversary release, &lt;a href="https://sourceforge.net/p/varnish/news/2006/09/varnish-10-released/"&gt;Varnish 1.0 was
released&lt;/a&gt; on September 20th 2006.&lt;/p&gt;
&lt;p&gt;That also means that we have been doing this for 10 years
without any bad security holes.&lt;/p&gt;</description></item></channel></rss>