PoC exploits released for critical Fortinet FortiWeb flaw allowing pre-auth RCE. Fortinet urges users to patch.
Proof-of-concept (PoC) exploits for CVE-2025-25257 in Fortinet FortiWeb (CVSS 9.8) enable pre-auth RCE on vulnerable servers.
The flaw is a SQL injection vulnerability in FortiWeb (CWE-89) that allows unauthenticated attackers to execute unauthorized SQL commands via crafted HTTP/HTTPS requests.
“An improper neutralization of special elements used in an SQL command (‘SQL Injection’) vulnerability [CWE-89] in FortiWeb may allow an unauthenticated attacker to execute unauthorized SQL code or commands via crafted HTTP or HTTPs requests.” reads the advisory.
Fortinet addressed the issue with the release of security patches in versions 7.6.4, 7.4.8, 7.2.11, and 7.0.11.
Kentaro Kawane from GMO Cybersecurity reported this vulnerability under responsible disclosure.
In a recent analysis, WatchTowr researchers conducted a binary diffing comparison of Fortinet’s httpsd
service between versions 7.6.3 and 7.6.4. This approach allowed them to discover the specific changes introduced in the new version to address the issue, ultimately revealing the presence of a security patch.
Once discovered the unauthenticated SQL injection vulnerability, researchers explored how to escalate it to remote code execution. They explored using MySQL’s INTO OUTFILE
statement, which allows writing arbitrary files to the server’s filesystem, typically with limited mysql
user privileges.
However, in this case, due to a misconfiguration, files could be written as root
, enabling more impactful exploits. Their first attempt to achieve code execution by dropping a web shell into a CGI-enabled directory failed, as the files weren’t executable. They then pivoted to a more creative method.
They found an existing Python script (ml-draw.py
) in the CGI directory, executed by Apache via /bin/python
. Leveraging this, they used a lesser-known Python feature: .pth
files. When placed in Python’s site-packages
directory, .pth
files can execute arbitrary code if they include a line like import os
.
Despite challenges with file size limits and path constraints in INTO OUTFILE
, they eventually bypassed them using a relative file path and by extracting payload chunks from the database itself. Ultimately, they successfully executed code by crafting and placing a .pth
file that ran their desired Python code when the CGI script was triggered.
watchTowr researchers created a Detection Artifact Generator for FortiWeb CVE-2025-25257 that is available here.
Administrators are strongly advised to apply patches immediately due to the availability of public exploits. While there’s no evidence of active exploitation yet, this is expected to change soon.
Follow me on Twitter: @securityaffairs and Facebook and Mastodon
(SecurityAffairs – hacking, Fortinet FortiWeb)
Source: SecurityAffairs
Source Link: https://securityaffairs.com/179874/security/patch-immediately-cve-2025-25257-poc-enables-remote-code-execution-on-fortinet-fortiweb.html