The headerplus.write_req0() function from vmod_headerplus updates the
underlying req0, which is normally the original read-only request from which
req is derived (readable and writable from VCL).
This is useful in the active VCL, after amending req, to prepare a refined
req0 before switching to a different VCL with the return (vcl(<label>))
action. This is for example how the Varnish Controller operates shared VCL
deployments.
If the amended req contained too many header fields for req0, this would
have resulted in a workspace overflow that would in turn trigger a panic and
crash the Varnish Enterprise server.
This could be used as a Denial of Service attack vector by malicious clients.
The recommended solution is to upgrade Varnish to one of the versions where this issue has been resolved, and then ensure that Varnish is restarted.