Ferritaas Incident Intelligence
Defect Intelligence Report Bug 0911202 Severity: High (P2)

FortiGate 90G SP5 Hardware Flow Table Collision on Jumbo MTU 9000 Frames

On FortiGate 90G and 91G appliances with 10GbE uplinks, high-throughput Jumbo MTU 9000 packet streams trigger hash collisions in the SP5 NPU flow table, revoking hardware offload and drowning the CPU in software interrupts.

Technical Root Cause Analysis

The FortiGate 90G and 91G are powered by Fortinet's fifth-generation Security Processing Unit (SP5 ASIC), integrating high-density hardware session offloading with dual 10GbE SFP+ interfaces. In high-performance enterprise storage (iSCSI, NFS, NVMe-oF) and backup networks, interfaces are configured with set mtu-override enable and set mtu 9000 to maximize Ethernet payload efficiency.

In early NPI builds of FortiOS 7.4.2 and 7.4.3, the SP5 microcode flow-hash generation engine incorporates Ethernet payload length into the 18-bit lookup key. When continuous streams of maximum-size jumbo packets traverse the NPU, the calculated hash indices experience severe distribution bias, clustering within a single Content Addressable Memory (CAM) bucket. Once a 4-way associative bucket overflows, the SP5 ASIC revokes hardware acceleration for the session (setting npu_offload=0) and diverts full 10Gbps traffic streams into the kernel SLOWPATH. The ARM CPU cores immediately peg at 100% software interrupt (sirq), resulting in massive ring buffer overruns, dropped frames, and broken storage replication.

[sp5_npu] flow_hash_insert: hash collision at index 0x1bf4 (key len 9000) [sp5_npu] hardware table insert rejected: reason=CAM_BUCKET_FULL [sp5_npu] session 00a48b12 offload revoked -> fallback to CPU SLOWPATH CPU0 sirq: 99.4%, CPU1 sirq: 98.9%, CPU2 sirq: 99.1%, CPU3 sirq: 98.7% kernel: eth4: rx ring buffer overflow (142099 drops/sec)

Affected Firmware & Blast Radius Matrix

FortiOS Branch Vulnerable Builds Confirmed Clean Build Status & Workaround
FortiOS 7.4 (NPI) 7.4.2 NPI, 7.4.3 NPI 7.4.4 GA+ Tune SP5 flow-hash or clamp MSS
FortiOS 7.2 Not Applicable FG-90G requires 7.4+ SP5 hardware not supported in 7.2
FortiOS 7.6 Not Affected 7.6.0+ Updated SP5 microcode included in base

Platform Impact: Exclusively affects FortiGate 90G and 91G hardware models running 10GbE SFP+ uplinks configured with MTU 9000/9216 in high-throughput datacenter environments.

Step 01: Free Verification CLI (Safe Read-Only)

Execute these diagnostic commands to query the SP5 hardware session engine and detect offload revocations and CPU software interrupt saturation:

Diagnostic Commands

# 1. Inspect SP5 hardware session offload rates and collision drops
diagnose npu sp5 session-stat

# 2. Compare hardware vs. software session counts
diagnose sys session stat

# 3. Check SP5 Data Storage Engine (DSE) CAM bucket utilization
diagnose npu sp5 dse-stat

# 4. View hardware processor status and temperature
get hardware status

Remediation & Workaround Steps (Teaser Preview)

Follow the complete step-by-step remediation guide in the Ferrite interactive platform:

Step 02: Trace Offload Revocation by Session ID

Filter active session table entries to identify jumbo storage connections dumped to the host CPU.

🔒 Interactive CLI Available in Ferrite Runbook #16

Step 03: Adjust SP5 Hash Microcode Algorithm in NPU Config

Switch flow hashing from 5-tuple+length to standard 5-tuple XOR distribution via hidden NPU commands.

🔒 Interactive CLI Available in Ferrite Runbook #16

Step 04: Temporary TCP MSS Clamping Safeguard

Clamp TCP MSS to 8960 on transit policies to prevent microcode length trigger without dropping MTU.

🔒 Interactive CLI Available in Ferrite Runbook #16
⚡ Ferrite Platform Superpowers

Execute the Complete Runbook with Live Browser Automation

Connect your FortiGate via browser console (Web Serial) or local SSH bridge, verify each command in real-time, generate ready-to-run Tera Term scripts, and export sanitized TAC dossiers.

Live Browser Automation Direct terminal connection with live step checkoff.
📟
1-Click Tera Term (.ttl) Generate scripts for air-gapped jumpboxes.
🛡️
Zero-Trust Scrubber Scrub serials and credentials in local browser RAM.
📄
TAC P1 Escalation Dossier Standardized evidence export with SHA-256 seal.

Frequently Asked Questions

Does this affect standard 1500-byte MTU traffic on the FortiGate 90G?

No. Standard 1500-byte frames distribute across the SP5 CAM hash buckets evenly and achieve full wire-speed hardware offload without collision.

Can I disable hardware offload completely as a temporary fix?

Disabling NPU offload with set auto-asic-offload disable forces all traffic through the CPU, which avoids CAM collisions but limits throughput to ~1.5 Gbps instead of 10 Gbps.

Which firmware version provides the permanent microcode fix?

FortiOS 7.4.4 GA includes an updated SP5 microcode package (v5.10.42) that redesigns hash polynomial weights for jumbo frames.