CVE-2023-53943

5.3 MEDIUM

📋 TL;DR

CVE-2023-53943 is a username enumeration vulnerability in GLPI's password recovery mechanism that allows attackers to determine valid user email addresses by analyzing response differences. This affects GLPI 9.5.7 installations, potentially enabling targeted phishing or brute-force attacks against identified accounts.

💻 Affected Systems

Products:
  • GLPI
Versions: 9.5.7
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all GLPI 9.5.7 installations regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers build complete user directory, enabling targeted credential stuffing, phishing campaigns, or social engineering attacks against specific individuals.

🟠

Likely Case

Attackers validate email addresses for spam lists or targeted phishing, potentially leading to account compromise through follow-up attacks.

🟢

If Mitigated

Limited to email validation only; no direct access to accounts or data without additional vulnerabilities.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Simple HTTP request/response analysis with no authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 9.5.8

Vendor Advisory: https://glpi-project.org/pt-br/

Restart Required: No

Instructions:

1. Backup your GLPI installation and database. 2. Download GLPI 9.5.8 or later. 3. Follow GLPI upgrade documentation. 4. Verify the password recovery endpoint returns consistent responses.

🔧 Temporary Workarounds

Rate Limit Password Reset Endpoint

linux

Implement rate limiting on /front/lostpassword.php to prevent systematic enumeration

# Configure web server rate limiting (nginx example)
limit_req_zone $binary_remote_addr zone=passwordreset:10m rate=5r/m;
location ~* /front/lostpassword\.php$ {
    limit_req zone=passwordreset burst=10 nodelay;
}

Web Application Firewall Rule

all

Block or monitor excessive requests to password reset endpoint

# ModSecurity rule example
SecRule REQUEST_URI "@rx /front/lostpassword\.php" \
    "id:1001,phase:1,deny,status:429,msg:'Password reset enumeration attempt'"

🧯 If You Can't Patch

  • Implement CAPTCHA on password reset page to prevent automated enumeration
  • Monitor logs for excessive password reset requests from single IPs

🔍 How to Verify

Check if Vulnerable:

Test password reset endpoint with valid and invalid emails; if responses differ (timing, error messages, HTTP codes), system is vulnerable.

Check Version:

php glpi/front/central.php | grep 'GLPI' or check GLPI admin dashboard

Verify Fix Applied:

After patching, test with valid/invalid emails; responses should be identical in timing and content.

📡 Detection & Monitoring

Log Indicators:

  • Multiple POST requests to /front/lostpassword.php from single IP
  • Failed password reset attempts with different email addresses

Network Indicators:

  • HTTP POST to /front/lostpassword.php with varying email parameters
  • Abnormal request patterns to password reset endpoint

SIEM Query:

source="web_logs" url="/front/lostpassword.php" | stats count by src_ip | where count > 10

🔗 References

📤 Share & Export