CVE-2025-22254

6.6 MEDIUM

📋 TL;DR

This CVE describes an improper privilege management vulnerability in multiple Fortinet products where authenticated users with read-only admin permissions can escalate to super-admin privileges via crafted requests to the Node.js websocket module. This affects FortiOS, FortiProxy, and FortiWeb across multiple versions. Attackers with initial access can gain full administrative control.

💻 Affected Systems

Products:
  • Fortinet FortiOS
  • Fortinet FortiProxy
  • Fortinet FortiWeb
Versions: FortiOS 7.6.0-7.6.1, 7.4.0-7.4.6, 7.2.0-7.2.10, 7.0.0-7.0.16, 6.4.0-6.4.15; FortiProxy 7.6.0-7.6.1, 7.4.0-7.4.7; FortiWeb 7.6.0-7.6.1, 7.4.0-7.4.6
Operating Systems: FortiOS
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user with at least read-only admin permissions; affects Node.js websocket module implementation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An attacker with read-only admin access gains super-admin privileges, enabling complete system compromise, configuration changes, data exfiltration, and lateral movement within the network.

🟠

Likely Case

Privilege escalation from limited admin to full administrative control, allowing unauthorized configuration changes, policy modifications, and potential persistence mechanisms.

🟢

If Mitigated

With proper access controls and network segmentation, impact is limited to the affected device, though administrative control loss remains significant.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated access; crafted websocket requests are needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: FortiOS 7.6.2, 7.4.7, 7.2.11, 7.0.17, 6.4.16; FortiProxy 7.6.2, 7.4.8; FortiWeb 7.6.2, 7.4.7

Vendor Advisory: https://fortiguard.fortinet.com/psirt/FG-IR-25-006

Restart Required: Yes

Instructions:

1. Download appropriate firmware version from Fortinet support portal. 2. Backup current configuration. 3. Upload firmware via GUI or CLI. 4. Reboot device after installation.

🔧 Temporary Workarounds

Restrict Admin Access

all

Limit administrative access to only trusted users and implement principle of least privilege.

Network Segmentation

all

Isolate management interfaces from untrusted networks and implement strict access controls.

🧯 If You Can't Patch

  • Implement strict access controls to limit who has admin permissions
  • Monitor for unusual administrative activity and privilege escalation attempts

🔍 How to Verify

Check if Vulnerable:

Check current firmware version via CLI: 'get system status' or GUI: System > Dashboard

Check Version:

get system status | grep Version

Verify Fix Applied:

Verify firmware version is updated to patched versions listed in vendor advisory

📡 Detection & Monitoring

Log Indicators:

  • Unusual privilege escalation events
  • Multiple failed then successful admin login attempts
  • Websocket connection anomalies

Network Indicators:

  • Unusual websocket traffic to management interfaces
  • Administrative actions from unexpected sources

SIEM Query:

source="fortigate" AND (event_type="admin" OR event_type="authentication") AND (action="escalate" OR user_change="true")

🔗 References

📤 Share & Export