CVE-2021-27885

8.8 HIGH

📋 TL;DR

This CVE describes a Cross-Site Request Forgery (CSRF) vulnerability in e107 CMS versions through 2.3.0. The usersettings.php file lacks proper e_TOKEN protection, allowing attackers to trick authenticated users into performing unintended actions. All e107 installations up to version 2.3.0 are affected.

💻 Affected Systems

Products:
  • e107 CMS
Versions: All versions through 2.3.0
Operating Systems: All platforms running e107
Default Config Vulnerable: ⚠️ Yes
Notes: All e107 installations up to version 2.3.0 are vulnerable by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could change user settings, passwords, or administrative configurations, potentially leading to account takeover or site compromise.

🟠

Likely Case

Attackers trick authenticated users into changing their own settings or performing actions without their consent.

🟢

If Mitigated

With proper CSRF tokens implemented, requests would be rejected unless they contain valid session tokens.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the victim to be authenticated and visit a malicious page while logged in.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 2.3.0

Vendor Advisory: https://github.com/e107inc/e107/releases

Restart Required: No

Instructions:

1. Update to e107 version after 2.3.0. 2. Apply the patch from commit d9efdb9b5f424b4996c276e754a380a5e251f472. 3. Verify the e_TOKEN protection is properly implemented in usersettings.php.

🔧 Temporary Workarounds

Manual CSRF Token Implementation

all

Manually add e_TOKEN validation to usersettings.php

Edit usersettings.php to include proper e_TOKEN validation before processing requests

🧯 If You Can't Patch

  • Implement web application firewall rules to detect and block CSRF attempts
  • Educate users about CSRF risks and safe browsing practices

🔍 How to Verify

Check if Vulnerable:

Check if e107 version is 2.3.0 or earlier and examine usersettings.php for missing e_TOKEN validation.

Check Version:

Check e107 admin panel or version.php file for version information

Verify Fix Applied:

Verify that usersettings.php includes proper e_TOKEN validation and test that CSRF requests are rejected.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed requests to usersettings.php without proper tokens
  • Unusual user setting changes

Network Indicators:

  • Requests to usersettings.php without Referer headers or with suspicious origins

SIEM Query:

source="web_logs" AND uri="/usersettings.php" AND NOT token_present=true

🔗 References

📤 Share & Export