CVE-2018-11773

9.8 CRITICAL

📋 TL;DR

This vulnerability in Apache VCL allows attackers to exploit improper input validation in block allocation forms, which passes user-controlled data to PHP's strtotime function. While the strtotime implementation was considered resistant to malicious attacks at discovery time, the vulnerability could potentially lead to remote code execution or other server compromise. All Apache VCL installations running versions 2.1 through 2.5 are affected.

💻 Affected Systems

Products:
  • Apache VCL (Virtual Computing Lab)
Versions: 2.1 through 2.5
Operating Systems: All operating systems running Apache VCL
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations of affected versions are vulnerable. The vulnerability requires access to the block allocation functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data theft, or lateral movement within the network.

🟠

Likely Case

Server-side request forgery, file inclusion, or denial of service through strtotime function exploitation.

🟢

If Mitigated

Limited impact with proper input validation and sanitization in place, potentially only causing application errors.

🌐 Internet-Facing: HIGH - Apache VCL is typically deployed as a web application accessible over networks, making internet-facing instances particularly vulnerable.
🏢 Internal Only: HIGH - Even internally deployed instances are vulnerable to authenticated or network-accessible attackers.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires understanding of strtotime function vulnerabilities and access to the vulnerable form. No public exploit code was available at disclosure time.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.5.1

Vendor Advisory: https://lists.apache.org/thread.html/8f3284afbcb4b87ed107dac98603020c23a379c687858b41da763147@<announce.apache.org>

Restart Required: Yes

Instructions:

1. Backup your current VCL installation and database. 2. Download Apache VCL version 2.5.1 or later from the official Apache website. 3. Follow the upgrade instructions in the VCL documentation. 4. Restart the web server and VCL services. 5. Verify the upgrade was successful.

🔧 Temporary Workarounds

Input Validation Enhancement

all

Add custom input validation for block allocation form fields before passing to strtotime function.

# Modify the vulnerable PHP file to validate date/time inputs
# Example: if (!preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $input)) { die('Invalid input'); }

Access Restriction

linux

Restrict access to the block allocation functionality to trusted users only using web server authentication.

# Apache .htaccess example:
# AuthType Basic
# AuthName "Restricted Area"
# AuthUserFile /path/to/.htpasswd
# Require valid-user

🧯 If You Can't Patch

  • Implement strict input validation and sanitization for all form inputs, especially those passed to PHP date/time functions.
  • Deploy a web application firewall (WAF) with rules to detect and block suspicious strtotime parameter patterns.

🔍 How to Verify

Check if Vulnerable:

Check your Apache VCL version. If it's between 2.1 and 2.5 (inclusive), you are vulnerable.

Check Version:

Check the VCL configuration files or admin interface for version information, or examine the source code directory structure.

Verify Fix Applied:

Verify the installed version is 2.5.1 or later and test the block allocation functionality with various inputs.

📡 Detection & Monitoring

Log Indicators:

  • Unusual strtotime function errors in PHP logs
  • Multiple failed block allocation attempts
  • Suspicious date/time format inputs in web server logs

Network Indicators:

  • Unusual POST requests to block allocation endpoints with malformed date parameters

SIEM Query:

source="apache_access" AND (uri_path="/path/to/block/allocation" OR uri_path="*block*allocation*") AND (http_method="POST") AND (user_agent NOT IN ["normal_user_agents"])

🔗 References

📤 Share & Export