FortiClientEMS Software

Fortinet has warned of a critical security flaw impacting its FortiClientEMS software that could allow attackers to achieve code execution on affected systems.

"An improper neutralization of special elements used in an SQL Command ('SQL Injection') vulnerability [CWE-89] in FortiClientEMS may allow an unauthenticated attacker to execute unauthorized code or commands via specifically crafted requests," the company said in an advisory.

The vulnerability, tracked as CVE-2023-48788, carries a CVSS rating of 9.3 out of a maximum of 10. It impacts the following versions -

  • FortiClientEMS 7.2.0 through 7.2.2 (Upgrade to 7.2.3 or above)
  • FortiClientEMS 7.0.1 through 7.0.10 (Upgrade to 7.0.11 or above)

Horizon3.ai, which plans to release additional technical details and a proof-of-concept (PoC) exploit next week, said the shortcoming could be exploited to obtain remote code execution as SYSTEM on the server.

Cybersecurity

Fortinet has credited Thiago Santana from the ForticlientEMS development team and the U.K. National Cyber Security Centre (NCSC) for discovering and reporting the flaw.

Also fixed by the company two other critical bugs in FortiOS and FortiProxy (CVE-2023-42789 and CVE-2023-42790, CVSS scores: 9.3) that could permit an attacker with access to the captive portal to execute arbitrary code or commands via specially crafted HTTP requests.

The below product versions are impacted by the flaws -

  • FortiOS version 7.4.0 through 7.4.1 (Upgrade to FortiOS version 7.4.2 or above)
  • FortiOS version 7.2.0 through 7.2.5 (Upgrade to FortiOS version 7.2.6 or above)
  • FortiOS version 7.0.0 through 7.0.12 (Upgrade to FortiOS version 7.0.13 or above)
  • FortiOS version 6.4.0 through 6.4.14 (Upgrade to FortiOS version 6.4.15 or above)
  • FortiOS version 6.2.0 through 6.2.15 (Upgrade to FortiOS version 6.2.16 or above)
  • FortiProxy version 7.4.0 (Upgrade to FortiProxy version 7.4.1 or above)
  • FortiProxy version 7.2.0 through 7.2.6 (Upgrade to FortiProxy version 7.2.7 or above)
  • FortiProxy version 7.0.0 through 7.0.12 (Upgrade to FortiProxy version 7.0.13 or above)
  • FortiProxy version 2.0.0 through 2.0.13 (Upgrade to FortiProxy version 2.0.14 or above)

While there is no evidence that the aforementioned flaws have come under active exploitation, unpatched Fortinet appliances have been repeatedly abused by threat actors, making it imperative that users move quickly to apply the updates.

Update

Cybersecurity company Horizon3.ai, in a separate report, revealed that two of the FortiWLM and FortiSIEM vulnerabilities it reported to Fortinet last year have not been patched to date -

  • Unauthenticated Limited Log File Read - Allows retrieval of arbitrary log files which contain administrator session ID tokens
  • Static Session ID Vulnerability - Session IDs do not change between sessions for users. Chained with the above issue allows trivial compromise of the device.

"The web session ID token of authenticated users remains static, and unchanged, for users between sessions," security researcher Zach Hanley said. "Each time a user logs in, they receive the exact same session ID token. This token remains static for each boot of the device."

"An attacker that can obtain this token can abuse this behavior to hijack sessions and perform administrative actions. This session ID is retrievable with the unpatch limited log file read vulnerability above and can be used to gain administrative permissions to the appliance."

CVE-2023-48788 Comes Under Active Attack

Fortinet has revised its advisory for CVE-2023-48788 to note that the “vulnerability is exploited in the wild.” It did not provide any other specifics about the nature of the attacks and the threat actors that may be abusing them.

Horizon3.ai has also released a PoC exploit for the flaw, stating the “SQL injection vulnerability is caused by user controlled strings that are passed directly into database queries.”

The PoC, however, needs to be altered to use the Microsoft SQL Server xp_cmdshell functionality to spawn a Windows command shell to achieve code execution.


Found this article interesting? This article is a contributed piece from one of our valued partners. Follow us on Twitter and LinkedIn to read more exclusive content we post.