CVE-2023-47107

8.8 HIGH

📋 TL;DR

CVE-2023-47107 is a host header injection vulnerability in PILOS that allows attackers to manipulate password reset URLs to point to malicious servers, potentially capturing reset tokens. This affects PILOS deployments with local user accounts and password reset functionality enabled. Attackers could hijack password reset processes to compromise user accounts.

💻 Affected Systems

Products:
  • PILOS (open source front-end for BigBlueButton)
Versions: Versions before 2.3.0
Operating Systems: All platforms running PILOS
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments with local user accounts and password reset functionality enabled. Does not affect external authentication methods like LDAP or OAuth.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers capture password reset tokens and take over administrator accounts, gaining full control of the PILOS/BigBlueButton deployment and potentially accessing sensitive meeting data.

🟠

Likely Case

Attackers capture password reset tokens for regular users, compromising individual accounts and accessing their meeting history and personal information.

🟢

If Mitigated

With proper network segmentation and monitoring, unauthorized password reset attempts are detected and blocked before token capture occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the attacker to trick users into initiating password resets while controlling the host header, but no authentication is needed to trigger the vulnerable endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.3.0

Vendor Advisory: https://github.com/THM-Health/PILOS/security/advisories/GHSA-mc6f-fj9h-5735

Restart Required: Yes

Instructions:

1. Backup current PILOS configuration and data. 2. Update PILOS to version 2.3.0 or later using your deployment method (Docker, manual install, etc.). 3. Restart PILOS services. 4. Verify the update was successful.

🔧 Temporary Workarounds

Disable password reset functionality

all

Temporarily disable the password reset feature for local accounts until patching is possible.

Modify PILOS configuration to disable password reset functionality (specific command depends on deployment method)

Configure reverse proxy to validate host headers

linux

Configure your reverse proxy (nginx, Apache, etc.) to validate and sanitize host headers before they reach PILOS.

# Example nginx configuration to validate host header
if ($host !~ ^(yourdomain\.com|localhost)$) {
    return 444;
}

🧯 If You Can't Patch

  • Disable password reset functionality for local user accounts
  • Implement network-level controls to block or monitor suspicious host header manipulation attempts

🔍 How to Verify

Check if Vulnerable:

Check PILOS version: if running version <2.3.0 with password reset enabled for local accounts, system is vulnerable.

Check Version:

Check PILOS web interface admin panel or deployment configuration for version information

Verify Fix Applied:

Verify PILOS version is 2.3.0 or later and test password reset functionality to ensure URLs use configured domain, not request host header.

📡 Detection & Monitoring

Log Indicators:

  • Unusual host header values in password reset requests
  • Multiple password reset attempts from same IP with varying host headers

Network Indicators:

  • HTTP requests to password reset endpoint with manipulated host headers
  • Outbound connections to unexpected domains following password reset links

SIEM Query:

source="pilos-logs" AND (uri_path="/password/reset" OR uri_path="/password/email") AND http_host!="expected-domain.com"

🔗 References

📤 Share & Export