3
Conditions that together trigger the documented IPS engine CPU regression: proxy-mode inspection, Application Control, and SSL/SSH inspect-all
7.00342
IPS engine version Fortinet identified as the source of high CPU after upgrading to FortiOS v7.2.9
7.00345+
Updated IPS engine version Fortinet shipped as the permanent fix, alongside 7.00551+ and 7.01021+ for later FortiOS branches

SponsoredHorizon3.ai

Proactive Security for the AI Era

NodeZero continuously and autonomously pentests infrastructure, identity, cloud, and now web applications, chaining weaknesses across every domain the way real attackers do. Every finding ships with replayable proof showing exploitable business impact, not theoretical risk.

See NodeZero WebApp in action

A CPU spike that appears the moment a FortiOS upgrade completes and does not appear before it is one of the easier troubleshooting problems to scope correctly and one of the easier ones to misdiagnose anyway, because the instinct is to treat it as a capacity problem and start looking at throughput or hardware sizing instead of the software that just changed. Fortinet has published more than one Technical Tip describing exactly this pattern: an IPS engine version shipped alongside a specific FortiOS release consumes excessive CPU, but only when a particular combination of proxy-mode inspection settings is active, meaning the same upgrade can be completely uneventful on one firewall and severe on another depending on the policy configuration already in place. This guide covers confirming the IPS engine is actually the cause before changing anything, the immediate workaround that removes the triggering condition without waiting for a new engine build, the permanent fix Fortinet ships as an updated IPS engine version, and the failure modes that show up when the workaround is applied incompletely. It is a companion piece to our coverage of FortiGate HA split-brain diagnosis and the FortiBleed credential leak, but this is a performance regression tied to a software upgrade, not a clustering fault or a credential exposure.

Cause: an IPS engine regression tied to a specific FortiOS release

Fortinet has documented at least two instances of this pattern, one affecting FortiOS v7.2.9 and v7.2.10 with IPS engine version 7.00342, and the underlying trigger is the same combination of conditions in each case: proxy-mode inspection with an Application Control security profile enabled, combined with the SSL/SSH Inspection profile's "inspect-all" option turned on, either in the SSL/SSH profile or in protocol options. When all of those conditions are present, the IPS engine's process-level CPU consumption climbs sharply, with individual ipsengine processes reported consuming anywhere from roughly 19 percent up to 99 percent of a core depending on traffic load and the specific build. A FortiGate running flow-based inspection instead of proxy-based, or one without Application Control enabled on the affected policies, will not trigger this regression even on the same FortiOS and IPS engine version, which is why the same upgrade can look completely fine on one deployment and severe on another with a different policy profile.

Cause: ruling out traffic growth and legitimate scaling limits

Before treating any post-upgrade CPU spike as this specific IPS engine regression, rule out the more mundane explanation that traffic volume or the number of concurrently inspected sessions has genuinely grown past what the appliance was sized for, independent of anything the upgrade changed. An upgrade that coincides with a seasonal traffic increase, a newly added SSL inspection policy covering more of the network than before, or additional security profiles enabled during the same maintenance window as the upgrade can all produce a CPU increase that has nothing to do with an IPS engine defect. The distinguishing diagnostic detail in Fortinet's own documentation is that the affected regression shows CPU load concentrated specifically in the ipsengine processes and, at the system level, CPU time reported as system space rather than user space, which is a different signature from a firewall that is simply processing more legitimate traffic across all its inspection processes evenly.

Free daily briefing

Briefings like this, every morning before 9am.

Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.

Diagnostics: confirming FortiOS and IPS engine version

Run get system status to confirm the exact FortiOS build and get system auto-update versions to confirm the currently running IPS engine version, since the regression is tied to specific version combinations, not to FortiOS upgrades generically. If the FortiOS version and IPS engine version match a documented affected combination, proceed to process-level confirmation rather than assuming the match alone proves the cause, since a device can be running an affected version combination without the triggering policy configuration also being present.

Diagnostics: confirming CPU load is concentrated in the IPS engine

Use get sys perf stat for a system-wide performance snapshot and diagnose sys top 2 50 to view CPU consumption broken out by process across cores. If multiple ipsengine processes appear individually consuming a large share of a core each, and get sys perf stat shows the load concentrated in system space, that is consistent with the documented regression rather than ordinary traffic growth. To confirm the IPS engine specifically, rather than inferring it from process names alone, run diagnose test application ipsmonitor 5 with bypass mode enabled, which allows IPS to pass traffic without inspecting it; if CPU usage drops meaningfully with bypass enabled, the IPS engine's inspection workload is the cause, and if CPU stays high with bypass enabled, the bottleneck lies elsewhere and this specific regression is not the explanation. Bypass mode disables inspection entirely while enabled, so treat it as a diagnostic step for a brief, controlled test window, not a standing configuration, and re-run the same command with bypass disabled to restore normal inspection once the test is complete.

Fix: the temporary workaround before an engine update is applied

The fastest way to stop the CPU spike without waiting for a new IPS engine build is to remove one of the three triggering conditions from the affected policies: switch the policy from proxy-based to flow-based inspection where that is acceptable for the traffic being inspected, disable Application Control on the affected proxy-mode policies, or disable inspect-all in the SSL/SSH Inspection profile and protocol options in favor of a narrower inspection scope. Each of these is a real reduction in inspection coverage, not a cosmetic change, so weigh which one is least disruptive to the organization's actual security requirements rather than defaulting to whichever is fastest to click through. A separate, lower-risk workaround documented by Fortinet is downgrading specifically the IPS engine, independent of the FortiOS version, back to a known-good build such as 7.00341, which can be done without a TAC-issued engine file in some cases via diagnose autoupdate downgrade enable, or disabling automatic IPS engine updates under config system autoupdate schedule to prevent the affected engine version from being pulled down again during the investigation.

Fix: applying the permanent IPS engine update

Fortinet's permanent fix for the documented regressions is an updated IPS engine version, not a FortiOS patch, specifically 7.00345 or later (shipped alongside FortiOS v7.2.11), 7.00551 or later for the v7.4.6 branch, or 7.01021 or later for the v7.6.1 branch. Apply the update through the normal IPS engine update mechanism once available, or through Fortinet's manual IPS engine upgrade process if automatic updates are disabled as part of the temporary workaround above. Re-enable automatic IPS engine updates only after confirming the fixed engine version has actually been applied, since leaving automatic updates disabled indefinitely as a permanent state means the appliance stops receiving IPS signature updates as well as engine updates, which is a materially different and larger risk than the CPU regression it was disabling to avoid.

Validation: confirming the fix actually reduced CPU load

After applying either the workaround or the permanent engine update, re-run get sys perf stat and diagnose sys top 2 50 under representative production traffic, not immediately after a reboot when session counts and inspection load are artificially low, since a CPU measurement taken minutes after a change with light traffic will look fine regardless of whether the underlying issue was actually resolved. Confirm the fix across a realistic sample of the traffic patterns the firewall handles, not just a single test flow, since the regression is triggered by specific inspection profile combinations that may only be exercised by certain traffic types or times of day. If a policy-level workaround was applied, such as disabling inspect-all, confirm the intended scope of SSL inspection coverage is still acceptable to the security team, not only that CPU usage dropped, since a fix that reduces CPU by silently reducing inspection coverage below what policy requires is not actually resolved.

Failure cases: when the fix does not hold

Disabling automatic IPS engine updates as a temporary workaround and then forgetting to re-enable them once the permanent fix is applied leaves the appliance permanently behind on both engine and signature updates, which can surface much later as an unrelated gap in intrusion prevention coverage that has nothing to do with the original CPU issue. A policy-level workaround, such as switching from proxy-based to flow-based inspection, can resolve CPU load while quietly changing what the SSL/SSH inspection profile is actually able to inspect, which may not be noticed until a separate security review flags reduced visibility into encrypted traffic. Applying the updated IPS engine to only some of a cluster or HA pair while the CPU-monitoring alert continues to fire on unpatched members can also look like the fix failed when in fact it was applied incompletely, since Fortinet's fix is delivered per-device through the IPS engine update mechanism, not automatically synchronized across an HA pair by the fix itself.

Escalation criteria

Escalate to whoever manages the organization's security policy and inspection standards before applying a policy-level workaround such as disabling Application Control or inspect-all on production traffic, since that is a real reduction in inspection scope that should be a security-team decision, not a unilateral performance fix. Escalate to Fortinet TAC directly when the documented workaround and engine update do not resolve the CPU load, when the affected FortiOS or IPS engine version does not match a publicly documented Technical Tip, or when a manually issued IPS engine file is needed for a downgrade rather than the standard update mechanism, since TAC support is the path Fortinet documents for obtaining those files. Escalate to capacity planning if diagnostics rule out the IPS engine specifically, per the ipsmonitor bypass test, and CPU load remains high, since at that point the cause is more likely genuine traffic growth or appliance sizing rather than a version-specific regression, a distinction covered in more depth in our firewall platform migration guide for organizations evaluating whether current hardware still fits current traffic.

The bottom line

A FortiGate CPU spike that appears immediately after a FortiOS upgrade is not automatically a hardware sizing problem. Fortinet has documented a specific IPS engine regression, tied to proxy-mode inspection with Application Control and SSL/SSH inspect-all enabled together, that can be confirmed with get sys perf stat, diagnose sys top, and an ipsmonitor bypass test before any configuration is changed. The temporary fix is removing one of the three triggering conditions or downgrading the IPS engine specifically; the permanent fix is updating to the IPS engine version Fortinet shipped to resolve it, 7.00345 or later, 7.00551 or later, or 7.01021 or later depending on the FortiOS branch. Validate under real traffic rather than a fresh reboot, confirm any policy-level workaround against actual security requirements before leaving it in place, and escalate to Fortinet TAC when the documented fix does not apply or does not resolve the load.

Frequently asked questions

Why does FortiGate CPU spike right after a FortiOS upgrade?

Fortinet has documented a specific IPS engine regression, most notably in IPS engine version 7.00342 shipped with FortiOS v7.2.9, where CPU usage climbs sharply when proxy-mode inspection, an Application Control profile, and SSL/SSH Inspection's inspect-all option are all enabled on the same policy.

How do I confirm high CPU on FortiGate is actually caused by the IPS engine?

Run get sys perf stat and diagnose sys top 2 50 to check whether load is concentrated in ipsengine processes and system space, then run diagnose test application ipsmonitor 5 with bypass enabled; if CPU drops meaningfully with IPS bypassed, the IPS engine's inspection workload is confirmed as the cause.

What is the temporary workaround for the FortiGate IPS engine high CPU issue?

Remove one of the three triggering conditions, either switch the affected policy from proxy-based to flow-based inspection, disable Application Control on that policy, or disable inspect-all in the SSL/SSH Inspection profile, or downgrade the IPS engine specifically to a known-good build such as 7.00341.

What is Fortinet's permanent fix for the IPS engine CPU regression?

An updated IPS engine version rather than a FortiOS patch: 7.00345 or later shipped with FortiOS v7.2.11, 7.00551 or later for the v7.4.6 branch, or 7.01021 or later for the v7.6.1 branch, applied through the normal or manual IPS engine update mechanism.

Is it safe to leave automatic IPS engine updates disabled after applying the workaround?

No. Disabling automatic updates as a temporary workaround prevents the affected engine version from being pulled down again, but leaving it disabled after the permanent fix is applied stops the appliance from receiving both engine and signature updates going forward, which is a larger ongoing risk than the CPU regression.

When should a FortiGate high CPU issue be escalated to Fortinet TAC?

Escalate when the documented workaround and IPS engine update do not resolve the CPU load, when the affected FortiOS and IPS engine version combination does not match a published Technical Tip, or when a manually issued engine file is needed for a downgrade rather than the standard update path.

Sources & references

  1. Fortinet Community - Technical Tip: IPS engine consumes high CPU after upgrade
  2. Fortinet Community - Technical Tip: High CPU usage triggered from IPS Engine 7.00342 after upgrade to FortiOS v7.2.9
  3. Fortinet Community - Technical Tip: How to verify if high CPU usage is caused by the IPS engine process

Free resources

25
Free download

Critical CVE Reference Card 2025–2026

25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.

No spam. Unsubscribe anytime.

Free download

Ransomware Incident Response Playbook

Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.

No spam. Unsubscribe anytime.

Free newsletter

Get threat intel before your inbox does.

50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, daily, no spam.

Unsubscribe anytime. We never sell your data.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.

Giveaway: InfoSec World 2026 All Access Pass ($3,895 value)

Details →
Daily Briefing

Subscribe to enter the giveaway

Every subscriber is automatically entered. You also get daily threat intel every morning: zero-days, ransomware, and nation-state campaigns. Free. No spam.

Already subscribed? You're already entered.

Giveaway

Win a $3,895 InfoSec World 2026 pass.