Crash Artifacts
- Repeated crash records in
crashlogindicatingSignal 11 (Segmentation fault)in processcw_acd. - Unexpected core dump files located in system flash or ramdisk.
Fortinet FortiOS cw_acd CAPWAP Daemon (UDP 5246 / Fabric) Hermes elevates CVE-2025-25249 to 98 (CRITICAL). Unlike web interface vulnerabilities that can be mitigated behind management ACLs, the vulnerable cw_acd daemon listens on perimeter-exposed UDP port 5246 (CAPWAP / FortiTelemetry fabric). State-aligned threat actors actively exploit this flaw in the wild to drop PivotC2, establishing persistent out-of-band proxy channels into corporate LANs.
Software platform affected by security vulnerabilities and agentic attack patterns.
“Confirmed security vulnerability in Fortinet FortiOS Gateway documented in Hermes dossier.”
| Metric | Technical Specification | Operational Impact |
|---|---|---|
| CVE Identifier | CVE-2025-25249 | Universal vulnerability identifier |
| Vendor Advisory | FG-IR-25-084 | Fortinet PSIRT security advisory |
| CVSS v3.1 Score | 9.8 (Critical) | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| FIRST EPSS Score | 0.76% (53.11th percentile) | Rapidly accelerating following KEV listing |
| CISA KEV Status | Added on September 9, 2026 | Mandatory remediation under BOD 26-04 |
| Vulnerable Service | cw_acd daemon (CAPWAP Wireless Controller) | UDP port 5246 / FortiTelemetry Fabric |
| Authentication | None (Unauthenticated remote exploit) | Zero-touch network attack surface |
| Observed Implant | PivotC2 (Node.js Post-Exploitation RAT) | Interactive shell, tunneling, config theft |
The flaw affects all active release trains of FortiOS and related management products:
7.6.0 through 7.6.3 (Fixed in 7.6.4 and later);7.4.0 through 7.4.8 (Fixed in 7.4.9 and later);7.2.0 through 7.2.11 (Fixed in 7.2.12 and later);7.0.0 through 7.0.17 (Fixed in 7.0.18 and later);6.4.0 through 6.4.16 (Fixed in 6.4.17 and later);7.2.0 through 7.2.6 (Fixed in 7.2.7 and later);7.0.0 through 7.0.5 (Fixed in 7.0.6 and later);23.4, 24.1, 24.2 (Fixed in 24.3 and later).The vulnerability is caused by a memory copy boundary violation (CWE-122) inside the CAPWAP protocol parser implemented by the cw_acd daemon.
CVE-2025-25249 cw_acd Heap Overflow Execution Flow:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β 1. Unauthenticated Remote Threat Actor β ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ β Malformed UDP CAPWAP packet (Port 5246) βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β 2. cw_acd Network Packet Listener β β β’ Receives CAPWAP control message β β β’ Reads user-controlled TLV payload length field β ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ β Insufficient bounds validation (malloc(0x200)) βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β 3. Heap Buffer Overwrite (CWE-122 / CWE-787) β β β’ memcpy() copies oversized payload beyond heap chunk β β β’ Overwrites adjacent heap metadata & function pointers β ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ β Control flow hijacking (ROP / Shellcode) βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β 4. Arbitrary Code Execution on FortiGate β β β’ Spawns root shell or drops PivotC2 RAT binary β β β’ Establishes outbound TLS reverse tunnel to C2 β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββThe cw_acd binary processes CAPWAP (Control and Provisioning of Wireless Access Points) encapsulation headers. In the packet decoding routine:
0x200) to store reconstructed message fragments.memcpy() transfers up to 65,535 bytes from the UDP socket into the 512-byte heap allocation, corrupting consecutive heap chunks, glibc heap management structures (arena), and function pointers.By carefully grooming the heap layout with repeated UDP requests, threat actors overwrite function pointer tables in memory. When the daemon attempts to dispatch the next packet handler, execution redirects to attacker-controlled shellcode, achieving unauthenticated root execution on FortiOS.
Telemetry from cyber threat intelligence researchers indicates that CVE-2025-25249 is weaponized in targeted intrusions to deploy PivotC2:
/data/ or /tmp/).This pattern is consistent with other edge gateway attacks such as Cisco Secure FMC CVE-2026-20079 and Ivanti EPMM CVE-2026-1281.
Incident responders triaging Fortinet appliances must inspect crash logs and process tables for exploitation artifacts.
# 1. Read FortiOS crash logs for cw_acd segmentation faultsdiagnose debug crashlog read | grep -A 5 -B 2 "cw_acd"
# 2. Check running processes for unexpected daemons or Node.js instancesdiagnose sys process pidof cw_acdfnsysctl ps -ef | grep -iE "(node|pivot|sh|bash|python)"
# 3. Check open network sockets on UDP 5246diagnose netlink socket-list | grep 5246
# 4. Review administrative logins and configuration changesexecute log filter category 1execute log displayCrash Artifacts
crashlog indicating Signal 11 (Segmentation fault) in process cw_acd.Persistence & Malicious Artifacts
/tmp/, /data/, or /var/.config system auto-script.alert udp $EXTERNAL_NET any -> $HOME_NET 5246 ( \ msg:"HERMES CODEX - Fortinet FortiOS cw_acd CAPWAP Heap Buffer Overflow (CVE-2025-25249)"; \ flow:to_server; \ byte_test:1,>,0x00,0; \ content:"|00 00|"; offset:2; depth:2; \ byte_test:2,>,1024,4; \ classtype:attempted-admin; \ sid:202525249; rev:1; \)title: Fortinet FortiOS cw_acd Daemon Crash or Exploitationid: 9a38f4d1-8172-4ce0-a823-3b1a299ef012status: experimentaldescription: Detects crashes in the cw_acd process or suspicious CAPWAP communication anomalies indicating CVE-2025-25249 exploitation.references: - https://fortiguard.fortinet.com/psirt/FG-IR-25-084 - https://www.cisa.gov/known-exploited-vulnerabilities-catalogauthor: Hermes Codex Threat Intelligencedate: 2026-09-09tags: - attack.initial_access - attack.t1190 - cve.2025-25249logsource: product: fortios service: eventdetection: selection: logid: '0100022001' msg|contains: - 'cw_acd' - 'crash' - 'segmentation fault' condition: selectionfalsepositives: - Rare hardware memory faults.level: critical// Hunt for cw_acd crash anomalies and unauthorized FortiGate outbound C2CommonSecurityLog| where DeviceVendor =~ "Fortinet" and DeviceProduct =~ "FortiGate"| where DeviceEventClassID == "0100022001" or Message has "cw_acd"| summarize count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated) by DeviceName, DeviceAction, Message, DestinationIP| sort by LastSeen descApply Official Firmware Upgrades:
Download and apply official FortiOS firmware updates:
7.6.4 or later;7.4.9 or later;7.2.12 or later;7.0.18 or later;6.4.17 or later;7.2.7 / 7.0.6 or later.Temporary Workaround (Disable Fabric / Telemetry Access):
If immediate upgrading is impossible, restrict interface access by disabling fabric / fortitelemetry access on all WAN interfaces:
config system interface edit "wan1" unset allowaccess fabric unset allowaccess capwap nextendAudit for PivotC2 & Rogue Implants:
Execute diagnose debug crashlog read to verify whether cw_acd crashed prior to patching. Check /data/ and /tmp/ for foreign scripts.
Credential & Secret Rotation:
Rotate local administrative passwords, FortiGate-to-FortiManager API keys, and IPsec VPN shared secrets if compromise is suspected.