CVE-2019-25385

6.1 MEDIUM

📋 TL;DR

Smoothwall Express 3.1-SP4-polar-x86_64-update9 contains a reflected cross-site scripting vulnerability in the outgoing.cgi endpoint. Attackers can inject malicious JavaScript via MACHINE and MACHINECOMMENT parameters in POST requests, potentially stealing session cookies and authentication tokens. Organizations using this specific Smoothwall Express version are affected.

💻 Affected Systems

Products:
  • Smoothwall Express
Versions: 3.1-SP4-polar-x86_64-update9
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects the specific update9 version of Smoothwall Express 3.1-SP4. Other versions may be vulnerable but unconfirmed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain full administrative access to the Smoothwall firewall, reconfigure firewall rules, intercept all network traffic, and compromise internal systems.

🟠

Likely Case

Attackers steal user session cookies through phishing links, hijack authenticated sessions, and perform unauthorized actions within the Smoothwall interface.

🟢

If Mitigated

Attackers can execute JavaScript in victim browsers but cannot steal cookies if HttpOnly flags are set, limiting impact to UI manipulation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit code is publicly available on Exploit-DB (ID 46333). Attack requires user interaction (clicking malicious link) but no authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Update10 or later

Vendor Advisory: http://www.smoothwall.org

Restart Required: Yes

Instructions:

1. Backup current configuration. 2. Download and install Smoothwall Express 3.1-SP4-polar-x86_64-update10 or later from smoothwall.org. 3. Restart the Smoothwall system. 4. Verify the fix by testing the outgoing.cgi endpoint.

🔧 Temporary Workarounds

Web Application Firewall (WAF) Rules

linux

Deploy WAF rules to block XSS payloads in MACHINE and MACHINECOMMENT parameters

ModSecurity rule: SecRule ARGS:MACHINE "@rx <script" "id:1001,phase:2,deny,status:403,msg:'XSS attempt in MACHINE parameter'"
ModSecurity rule: SecRule ARGS:MACHINECOMMENT "@rx <script" "id:1002,phase:2,deny,status:403,msg:'XSS attempt in MACHINECOMMENT parameter'"

Input Validation Filter

linux

Add input sanitization to outgoing.cgi script to strip HTML/JavaScript from parameters

Edit /httpd/cgi-bin/outgoing.cgi
Add: $machine =~ s/[<>"']//g;
Add: $machinecomment =~ s/[<>"']//g;

🧯 If You Can't Patch

  • Implement strict Content Security Policy (CSP) headers to block inline script execution
  • Deploy network segmentation to isolate Smoothwall management interface from user networks

🔍 How to Verify

Check if Vulnerable:

Send POST request to /cgi-bin/outgoing.cgi with payload: MACHINE=<script>alert('XSS')</script>&MACHINECOMMENT=test. If JavaScript executes, system is vulnerable.

Check Version:

cat /var/smoothwall/main/version | grep -i smoothwall

Verify Fix Applied:

Repeat the vulnerable test after patching. JavaScript should not execute and input should be properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • POST requests to /cgi-bin/outgoing.cgi containing <script> tags in parameters
  • Unusual parameter values in outgoing.cgi access logs

Network Indicators:

  • HTTP requests with JavaScript payloads in POST body to Smoothwall management interface

SIEM Query:

source="smoothwall.logs" AND url_path="/cgi-bin/outgoing.cgi" AND (http_method="POST" AND (body="*<script>*" OR body="*javascript:*"))

🔗 References

📤 Share & Export