CVE-2019-15892

7.5 HIGH

📋 TL;DR

CVE-2019-15892 is a denial-of-service vulnerability in Varnish Cache HTTP/1 parser. Attackers can send crafted HTTP/1 requests that trigger an assertion failure, causing Varnish to restart with a cleared cache. This affects Varnish Cache installations before patched versions.

💻 Affected Systems

Products:
  • Varnish Cache
Versions: Versions before 6.0.4 LTS, 6.1.x before 6.2.1, 6.2.x before 6.2.1
Operating Systems: All operating systems running affected Varnish versions
Default Config Vulnerable: ⚠️ Yes
Notes: All Varnish Cache installations with HTTP/1 support enabled are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service disruption with cache loss, requiring manual intervention to restore normal operations.

🟠

Likely Case

Service interruption during automatic restart, temporary performance degradation due to cold cache.

🟢

If Mitigated

Minimal impact with proper monitoring and rapid restart capabilities.

🌐 Internet-Facing: HIGH - Attackers can directly exploit this without authentication via HTTP requests.
🏢 Internal Only: MEDIUM - Internal attackers or compromised systems could still trigger the vulnerability.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Crafting malicious HTTP/1 requests requires moderate technical knowledge but tools could automate exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 6.0.4 LTS, 6.2.1, or later

Vendor Advisory: https://varnish-cache.org/security/

Restart Required: Yes

Instructions:

1. Check current Varnish version. 2. Update to patched version via package manager. 3. Restart Varnish service. 4. Verify version and functionality.

🔧 Temporary Workarounds

HTTP/2 or HTTP/3 Only

all

Disable HTTP/1 support if only HTTP/2 or HTTP/3 is required

# Configure Varnish to only accept HTTP/2/3 connections

Rate Limiting

linux

Implement rate limiting on HTTP/1 requests to reduce attack surface

# Use iptables or similar to limit connections per IP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP

🧯 If You Can't Patch

  • Implement network-level filtering to block suspicious HTTP/1 patterns
  • Deploy redundant Varnish instances with load balancing to maintain service during restarts

🔍 How to Verify

Check if Vulnerable:

Run 'varnishd -V' and check if version is before 6.0.4 LTS, 6.1.x before 6.2.1, or 6.2.x before 6.2.1

Check Version:

varnishd -V

Verify Fix Applied:

Confirm version is 6.0.4 LTS, 6.2.1, or later using 'varnishd -V'

📡 Detection & Monitoring

Log Indicators:

  • Varnish assertion failures
  • Unexpected restarts
  • Cache cleared messages

Network Indicators:

  • Malformed HTTP/1 requests with unusual headers or structure

SIEM Query:

source="varnish" AND ("assert" OR "restart" OR "panic")

🔗 References

📤 Share & Export