Fortinet CVE-2025-61624 is now on CISA KEV: attackers used the FortiOS bug to plant the PEERSTITCH implant on firewalls at an MSP.
Fortinet rated this bug medium: 6.0 out of 10, and only exploitable by someone who is already an administrator. Attackers used it to get root on the firewall, then hid a spy implant inside the firewall's own logging and VPN processes, where it left no file on disk and opened no port of its own.
The victim was a telecom managed service provider, the kind of company that runs firewalls for dozens of other companies. If you manage edge devices for clients, this one is about you.
CVE-2025-61624 is a path traversal bug (CWE-22) in the CLI of Fortinet FortiOS and three
sibling products. It lets a privileged user write or delete arbitrary files by passing
crafted arguments to normal commands. "Path traversal" means sneaking ../ ("go up one
folder") into a filename so the file ends up somewhere it was never supposed to go.
Unit 42 found the weak spot in FortiOS's auto-script feature, which lets admins schedule
CLI scripts. The script's name isn't sanitized. Name a script ../../../../setup and
FortiOS writes your script to that location on the underlying operating system, as root.
Think of a hotel that lets managers store luggage in the back room. Nobody checks the tag, so a manager writes "back room → down the hall → the vault" on the tag and the bellhop carries it straight into the vault.
Fortinet scores it 6.0 base (5.4 temporal) because it needs admin credentials first. The catch is that attackers who steal firewall admin passwords are common.
According to Unit 42's October 14, 2026 report, the attackers used CVE-2025-61624 as the privilege-escalation step in a long intrusion against a telecom MSP. Unit 42 says the intrusion began in September 2024. The chain went like this:
Unit 42 also documented a second backdoor that abused the firewall's Apache mod_md
certificate module. A rogue certificate authority made the device spawn an SSH reverse
shell every time it "renewed" a certificate.
PEERSTITCH is a memory-resident ARM64 implant that injects code into two FortiOS daemons:
miglogd (logging) and iked (IPsec VPN). Once inside, it watches traffic for secret
markers and tags matching VPN sessions. Unit 42 says those tagged sessions then skip default
FortiOS security checks.
The unsettling line from the researchers:
"PEERSTITCH leaves no persistent binary on disk, opens no listening ports and initiates no outbound network connections."
So it doesn't show up as a new file, a new open port or odd outbound traffic. It hides in processes that are supposed to be on the firewall.
You, or any client whose firewall you manage, are affected if a device runs FortiOS 7.6.0–7.6.4, 7.4.0–7.4.9, or any 7.2, 7.0 or 6.4 release; FortiProxy 7.6.0–7.6.4, 7.4.0–7.4.11, or any 7.2/7.0; FortiPAM 1.0–1.7.0; or FortiSwitchManager 7.2.0–7.2.7 or 7.0.0–7.0.6, per Fortinet's advisory FG-IR-26-122.
The bigger question is whether anyone else already has your admin credentials. Ask:
Upgrade first: FortiOS 7.6.5+ or 7.4.10+, FortiProxy 7.6.5+ or 7.4.12+, FortiPAM 1.7.1+, FortiSwitchManager 7.2.8+ or 7.0.7+. Branches 6.4, 7.0 and 7.2 have no fix, so migrate. Fortinet also ships an IPS virtual patch (FG-VD-59270.0day) as a stopgap.
Patching closes the door but doesn't evict anyone already inside. Then:
../. Unit 42
lists that as a direct indicator.miglogd, iked or syslogd, and gaps in logging.mod_md / ACME settings for configs you didn't create.If you find indicators, don't just reboot and hope. Bring in incident response; this actor is good at deleting evidence.
The lesson is that one management console can expose hundreds of downstream firewalls. One FortiManager gave the attackers configs, credentials and network maps for more than 500 FortiGates, including firewalls guarding the MSP's clients. Unit 42 hasn't confirmed that client networks were breached, but the exposure alone is a nightmare.
It also shows why "medium" severity can be misleading. CVSS scores a bug on its own. Real attackers chain bugs, and a medium privilege escalation after a stolen password is just the next step.
KinoSec runs autonomous penetration tests against external networks, web apps and Active Directory, and it chains findings the way this attacker did. A KinoSec external pentest of your clients' perimeters would flag:
To be clear about scope: KinoSec won't scan firewall process memory for PEERSTITCH. That's work for forensics and incident response. What it does is find the exposed console, the unpatched version and the weak login that let this attack start, and write them up in a plain-language report you deliver to your client under your own brand. You can run it across every client on a schedule, so the next KEV entry doesn't wait for the annual test.
Yes. CISA added CVE-2025-61624 to its Known Exploited Vulnerabilities catalog on October 16, 2026, and Fortinet's advisory FG-IR-26-122 marks it as exploited. Unit 42 documented the threat cluster CL-STA-0954 (UNC5820) using it to get root on FortiGate firewalls and deploy the PEERSTITCH implant.
CVE-2025-61624 scores 6.0 (CVSS v3 base) because it requires an authenticated administrator with read-write rights. In the attack Unit 42 documented, the attackers got those admin credentials by stealing them from a compromised FortiManager first. Chained after a credential theft, a medium-rated bug can still give an attacker full control of the device.
Fortinet fixed CVE-2025-61624 in FortiOS 7.6.5 and 7.4.10, FortiProxy 7.6.5 and 7.4.12, FortiPAM 1.7.1, and FortiSwitchManager 7.2.8 and 7.0.7. FortiOS 7.2, 7.0 and 6.4 (and FortiProxy 7.2 and 7.0) have no patched release, so those devices need to move to a fixed branch.
PEERSTITCH is a memory-resident ARM64 implant for FortiGate firewalls, disclosed by Palo Alto
Networks Unit 42 in October 2026. It injects code into the FortiOS miglogd and iked
daemons and tags VPN sessions so they skip default security checks. It writes no persistent
file, opens no ports and makes no outbound connections of its own, so it is hard to detect.
No. Patching blocks new exploitation of CVE-2025-61624 but doesn't remove an attacker who is
already inside or invalidate credentials they stole. After upgrading, check for auto-script
objects with ../ in their names, rotate admin and VPN passwords, certificates and keys, and
bring in incident response if you find indicators.