Fortinet warns that a recently addressed FortiOS vulnerability has been exploited by a sophisticated threat actor in highly targeted attacks against governmental and government-related entities.
Patched last week, the bug is tracked as CVE-2022-41328 and is described as a medium-severity path traversal issue leading to command execution. When it announced the availability of fixes, Fortinet failed to mention that this was actually a zero-day vulnerability.
“An improper limitation of a pathname to a restricted directory vulnerability (‘path traversal’) in FortiOS may allow a privileged attacker to read and write arbitrary files via crafted CLI commands,” Fortinet notes in its advisory.
The security defect, Fortinet says in a blog post, was identified after “a sudden system halt and subsequent boot failure – a design to protect against compromise – of multiple FortiGate devices of a customer”.
The shutdown was triggered by a failed integrity self-test after the system detected modifications of the firmware image that were meant to provide attackers with persistent access and control.
According to Fortinet, the attackers likely compromised the affected FortiGate devices via the FortiManager management software, given that all devices stopped at the same time, all were compromised in the same way, and a path traversal exploit was attempted at the same time scripts were executed via FortiManager.
“This exploit would allow arbitrary files to be uploaded to FortiGate via a TFTP server at the path specified,” Fortinet explains. The attackers likely attempted to replace a legitimate Linux utility and execute it using the command line.
Analysis of the infected firmware images revealed the addition of three files and the modification of a FortiManager start-up script for persistence. The attackers also modified FortiManager’s Django components for persistent access and control, Fortinet says.
One of the malicious tools would establish a connection to the attackers’ command-and-control (C&C) server to receive commands that allowed the threat actor to exfiltrate data, download additional payloads, and launch a remote shell. A second malicious file with similar functionality was also found.
Another malicious file was designed to provide attackers with shell command execution with root privileges, to redirect traffic and query the device’s network interfaces to identify one with an IP address not starting with ‘127’.
Other malicious files were designed to execute and remove specific components, disable/enable firmware verification at startup, and expose an additional endpoint to achieve code execution.
According to Fortinet, the analyzed exploit shows that the threat actor has a deep understanding of both FortiOS and the underlying hardware, and that they likely reverse-engineered various parts of the platform.