CVE-2020-15929

9.8 CRITICAL

📋 TL;DR

CVE-2020-15929 is a critical path traversal vulnerability in Ortus TestBox that allows unauthenticated attackers to write arbitrary CFM files containing malicious CFML code. This leads to remote code execution within the application context. Organizations using TestBox versions 2.4.0 through 4.1.0 for testing ColdFusion applications are affected.

💻 Affected Systems

Products:
  • Ortus TestBox
Versions: 2.4.0 through 4.1.0
Operating Systems: All platforms running ColdFusion/Lucee
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems where TestBox is installed and accessible. Typically used in development/testing environments but may be exposed in production.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise allowing attackers to execute arbitrary code, steal sensitive data, install backdoors, and pivot to other systems.

🟠

Likely Case

Remote code execution leading to data exfiltration, credential theft, and deployment of web shells for persistent access.

🟢

If Mitigated

Limited impact with proper network segmentation, web application firewalls, and patched systems preventing exploitation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: CONFIRMED
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploit requires no authentication and is trivial to execute. Public exploit code is available and weaponized in automated attack tools.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.2.0 and later

Vendor Advisory: https://ortussolutions.com/products/testbox

Restart Required: Yes

Instructions:

1. Upgrade TestBox to version 4.2.0 or later. 2. Remove or restrict access to older vulnerable versions. 3. Restart the ColdFusion/Lucee service after upgrade.

🔧 Temporary Workarounds

Restrict access to HTMLRunner.cfm

all

Block or restrict access to the vulnerable endpoint via web server configuration or application firewall.

# Apache: RewriteRule ^system/runners/HTMLRunner\.cfm - [F,L]
# Nginx: location ~ /system/runners/HTMLRunner\.cfm { deny all; }
# IIS: Add request filter rule to block /system/runners/HTMLRunner.cfm

Input validation filter

all

Implement input validation to sanitize query parameters before processing.

# In Application.cfc or similar: this.onRequestStart = function(targetPage){ if(findNoCase('HTMLRunner.cfm', arguments.targetPage)){ var params = getHTTPRequestData().content; // Add validation logic here } }

🧯 If You Can't Patch

  • Immediately restrict network access to TestBox instances using firewall rules to allow only trusted IPs.
  • Monitor system/runners/HTMLRunner.cfm endpoint for suspicious access patterns and implement WAF rules to block exploitation attempts.

🔍 How to Verify

Check if Vulnerable:

Check if TestBox version is between 2.4.0 and 4.1.0 by examining the application files or version metadata.

Check Version:

# Check TestBox version in ColdFusion admin or examine /testbox/system/TestBox.cfc for version metadata

Verify Fix Applied:

Verify TestBox version is 4.2.0 or later and test that the HTMLRunner.cfm endpoint no longer accepts malicious parameters.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST/GET requests to /system/runners/HTMLRunner.cfm with file write parameters
  • Unexpected CFM file creation in application directories
  • ColdFusion/Lucee error logs showing file write attempts

Network Indicators:

  • HTTP requests containing malicious CFML code in parameters to TestBox endpoints
  • Outbound connections from TestBox servers to suspicious IPs post-exploitation

SIEM Query:

source="web_server_logs" AND (uri="/system/runners/HTMLRunner.cfm" AND (param="file" OR param="content"))

🔗 References

📤 Share & Export