CVE-2025-34174

5.4 MEDIUM

📋 TL;DR

This stored XSS vulnerability in pfSense CE allows authenticated attackers with 'WebCfg - Status: Traffic Totals' permissions to inject malicious scripts into the Status Traffic Totals page. When exploited, these scripts execute in the browsers of all users who visit that page, potentially stealing session cookies or performing unauthorized actions. Only pfSense CE installations with users having the specific required permissions are affected.

💻 Affected Systems

Products:
  • pfSense CE
Versions: All versions before the fix commit 9e412edf62113303c36c7f7d5a48b0a3fb0be893
Operating Systems: FreeBSD-based
Default Config Vulnerable: ⚠️ Yes
Notes: Default installations are vulnerable if any user has been granted 'WebCfg - Status: Traffic Totals' permissions.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An authenticated malicious insider could steal administrator session cookies, gain full administrative access, pivot to internal systems, or deploy ransomware across the network.

🟠

Likely Case

Attackers with valid credentials could steal session cookies from other users, escalate privileges, or perform unauthorized configuration changes within pfSense.

🟢

If Mitigated

With proper access controls limiting who has 'WebCfg - Status: Traffic Totals' permissions, impact is limited to authorized users only.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Requires authenticated access with specific permissions. Exploitation involves injecting malicious payload into the start-day parameter that gets stored and served to all users.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version containing commit 9e412edf62113303c36c7f7d5a48b0a3fb0be893

Vendor Advisory: https://redmine.pfsense.org/issues/16413

Restart Required: No

Instructions:

1. Update pfSense CE to latest version. 2. Apply patch via System > Update > pfSense Plus/CE. 3. No restart required - patch applies immediately.

🔧 Temporary Workarounds

Remove vulnerable permissions

all

Temporarily remove 'WebCfg - Status: Traffic Totals' permissions from all users until patched.

Input validation via custom rules

all

Add input validation for the start-day parameter using custom PHP validation if unable to patch immediately.

🧯 If You Can't Patch

  • Restrict 'WebCfg - Status: Traffic Totals' permissions to only absolutely necessary trusted administrators.
  • Implement network segmentation to isolate pfSense management interface from general user access.

🔍 How to Verify

Check if Vulnerable:

Check if /usr/local/www/status_traffic_totals.php lacks proper input sanitization for the start-day parameter.

Check Version:

pfSense version | grep 'Version'

Verify Fix Applied:

Verify the file contains proper htmlspecialchars() or equivalent sanitization for the start-day parameter output.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to status_traffic_totals.php with script tags in parameters
  • Multiple users accessing Status Traffic Totals page from same IP

Network Indicators:

  • Unexpected outbound connections from pfSense web interface to external domains

SIEM Query:

source='pfSense' AND uri='*status_traffic_totals.php*' AND (param='*<script*' OR param='*javascript:*')

🔗 References

📤 Share & Export