CVE-2024-33504

4.1 MEDIUM

📋 TL;DR

This vulnerability in FortiManager allows attackers with JSON API access permissions to decrypt sensitive data due to hard-coded cryptographic keys. It affects FortiManager versions 7.6.0-7.6.1, 7.4.0-7.4.5, 7.2.0-7.2.9, and all 7.0 and 6.4 versions. The 'private-data-encryption' setting does not protect against this attack.

💻 Affected Systems

Products:
  • FortiManager
Versions: 7.6.0-7.6.1, 7.4.0-7.4.5, 7.2.0-7.2.9, 7.0 all versions, 6.4 all versions
Operating Systems: FortiOS-based appliances
Default Config Vulnerable: ⚠️ Yes
Notes: Requires JSON API access permissions; the 'private-data-encryption' setting being enabled does not mitigate this vulnerability.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers with JSON API access could decrypt sensitive configuration data, credentials, or secrets stored in FortiManager, potentially compromising the entire managed Fortinet infrastructure.

🟠

Likely Case

Authorized but malicious users or compromised accounts could extract encrypted secrets from the system, leading to lateral movement or privilege escalation within the network.

🟢

If Mitigated

With proper access controls and network segmentation, only authorized administrators could access the JSON API, limiting exposure to trusted personnel.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires JSON API access permissions; public proof-of-concept code is available in security advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.6.2, 7.4.6, 7.2.10, 7.0.14, 6.4.15

Vendor Advisory: https://fortiguard.fortinet.com/psirt/FG-IR-24-094

Restart Required: Yes

Instructions:

1. Backup FortiManager configuration. 2. Download appropriate firmware version from Fortinet Support Portal. 3. Upload firmware to FortiManager via GUI or CLI. 4. Install update and reboot system. 5. Verify version after reboot.

🔧 Temporary Workarounds

Restrict JSON API Access

all

Limit JSON API access to only trusted IP addresses and users with minimal necessary permissions.

config system admin
edit <admin_user>
set trusthost1 <trusted_ip> <mask>
end

Disable Unnecessary JSON API Access

all

Remove JSON API permissions from users who don't require them for their role.

config system admin
edit <admin_user>
unset accprofile
set accprofile <restricted_profile>
end

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate FortiManager from untrusted networks.
  • Enforce least privilege access controls and regularly audit JSON API user permissions.

🔍 How to Verify

Check if Vulnerable:

Check FortiManager version via GUI (System > Dashboard) or CLI (get system status). If version falls within affected ranges, system is vulnerable.

Check Version:

get system status | grep Version

Verify Fix Applied:

After patching, verify version is 7.6.2, 7.4.6, 7.2.10, 7.0.14, 6.4.15 or higher.

📡 Detection & Monitoring

Log Indicators:

  • Unusual JSON API access patterns
  • Multiple failed authentication attempts followed by successful JSON API access
  • Access from unexpected IP addresses to JSON API endpoints

Network Indicators:

  • Unusual traffic to FortiManager JSON API ports (default 443)
  • Traffic patterns suggesting data exfiltration from FortiManager

SIEM Query:

source="fortimanager" AND (event_type="admin_login" OR api_method="*json*") AND (src_ip NOT IN trusted_ips)

🔗 References

📤 Share & Export