CVE-2021-24019

8.1 HIGH

📋 TL;DR

This vulnerability allows attackers to reuse unexpired admin session IDs in FortiClientEMS to gain administrative privileges. It affects organizations using FortiClientEMS versions 6.4.2 and below or 6.2.8 and below. Attackers need to obtain valid session IDs through other means first.

💻 Affected Systems

Products:
  • FortiClient Enterprise Management Server (EMS)
Versions: 6.4.2 and below, 6.2.8 and below
Operating Systems: Windows, Linux
Default Config Vulnerable: ⚠️ Yes
Notes: All default configurations are vulnerable. No special configuration required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full administrative compromise of FortiClientEMS, allowing attackers to manage endpoints, deploy malicious configurations, and access sensitive endpoint management data.

🟠

Likely Case

Privilege escalation to admin level if an attacker obtains a valid session ID through session hijacking or credential theft.

🟢

If Mitigated

Limited impact with proper session management, network segmentation, and monitoring in place.

🌐 Internet-Facing: MEDIUM - Risk depends on whether EMS is exposed to internet and if session IDs can be intercepted.
🏢 Internal Only: HIGH - Internal attackers with network access could exploit this if they obtain session IDs.

🎯 Exploit Status

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

Requires obtaining valid admin session IDs first through other attacks like session hijacking, MITM, or credential theft.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 6.4.3 or 6.2.9

Vendor Advisory: https://fortiguard.com/advisory/FG-IR-20-072

Restart Required: Yes

Instructions:

1. Download FortiClientEMS 6.4.3 or 6.2.9 from Fortinet support portal. 2. Backup current configuration. 3. Install the update following Fortinet upgrade guide. 4. Restart the EMS service.

🔧 Temporary Workarounds

Session Timeout Reduction

all

Reduce session timeout values to minimize window for session reuse

Configure via FortiClientEMS web interface: System > Settings > Session Timeout

Network Segmentation

all

Isolate FortiClientEMS management interface from untrusted networks

🧯 If You Can't Patch

  • Implement strict network access controls to limit who can reach the EMS management interface
  • Enable detailed logging and monitoring for unusual admin session activity

🔍 How to Verify

Check if Vulnerable:

Check FortiClientEMS version via web interface: Dashboard > System Information

Check Version:

On EMS server: fc-ems-ctl --version

Verify Fix Applied:

Verify version is 6.4.3 or higher (for 6.4.x) or 6.2.9 or higher (for 6.2.x)

📡 Detection & Monitoring

Log Indicators:

  • Multiple admin sessions from different IPs
  • Admin sessions with unusual timing patterns
  • Failed login attempts followed by successful session reuse

Network Indicators:

  • Unusual admin API calls from unexpected sources
  • Session ID reuse across different client IPs

SIEM Query:

source="forticlient-ems" AND (event_type="admin_login" AND src_ip!=expected_admin_ip) OR (session_id COUNT BY user > 1)

🔗 References

📤 Share & Export