A wrong if statement in the varnishd source code means that synthetic objects in stevedores which over-allocate, may leak up to page size of data from a malloc(3) memory allocation. In a unpredictable percentage of the cases where this condition arises, a segmentation fault will happen instead. All the following conditions are required to trigger the problem: A -sfile or -spersistent stevedore must be configured A synthetic object must be created in vcl_backend_error{} The synthetic object ends up in the file or persistent stevedore. For the third condition can arise in two different ways: The stevedore named Transient is configured as -sfile or -spersistent (The default is -smalloc) The default stevedore is -sfile or -spersistent and the synthetic object is given a TTL larger than the shortlived parameter (default: 10 seconds.) Affected versions: 4.1.0 to 5.2.0 Upstream patch: https://github.com/varnishcache/varnish-cache/commit/176f8a075a External References: https://varnish-cache.org/security/VSV00002.html
Acknowledgments: Name: the Varnish project
Created varnish tracking bugs for this issue: Affects: fedora-all [bug 1513524]