
Exploit de prueba de concepto para CVE-2025-63946, una escalada local de privilegios en Tencent PC Manager mediante ataques de enlace simbólico en directorios temporales, logrando la eliminación arbitraria de archivos como SYSTEM.
versión: PCManager versión menor o igual a 17.10.28554.205
Resumen: Descubrí una vulnerabilidad en Tencent PC Manager donde los archivos y directorios bajo C:\Windows\Temp se manejan de forma insegura. Un atacante puede aprovechar ataques de enlaces simbólicos (symlink) para obligar a un proceso con privilegios de SYSTEM a eliminar archivos arbitrarios, lo que resulta en una escalada de privilegios local. Durante el proceso de escaneo, QQPCRtp.exe, ejecutándose bajo NT AUTHORITY\SYSTEM, mueve los archivos escaneados a este directorio temporal y los elimina después de que el escaneo finaliza.
Se observó que el proceso "QQPCRTP.exee" hará lo siguiente con privilegios de SYSTEM al iniciar el escaneo de la unidad:
QQPCRTP.exe crea un subdirectorio nombrado con un uuid (ej., {*}) dentro de pcmgr_scan_tmp.
Al final, QQPCRTP.exe usa privilegios de SYSTEM para eliminar el subdirectorio {*} dentro de pcmgr_scan_tmp.
Dado que el directorio "C:\Windows\Temp_pcmgr_scan_tmp_" puede ser creado por el usuario actual y asignado con privilegio "Modificar" para el usuario actual, el usuario actual puede modificar y leer todo el directorio. Con esta configuración, un usuario sin privilegios puede lograr la eliminación arbitraria de archivos creando un enlace simbólico a una ubicación privilegiada (ej., C:\Windows\System32). Además, un usuario malintencionado podría lograr una escalada de privilegios local a partir de la eliminación arbitraria de archivos/carpetas.
Tampoco sé exactamente cuándo Tencent PC Manager creará la carpeta pcmgr_scan_tmp, por lo que necesitamos ganar la condición de carrera para crear la carpeta pcmgr_scan_tmp en Windows\Temp. De lo contrario, puede realizar este exploit hasta que se reinstale PC Manager.
Para realizar LPE mediante eliminación arbitraria de archivos/carpetas, el usuario podría seguir los siguientes pasos:
El usuario crea la carpeta "C:\Windows\Temp\TencentDownload"
El usuario establece un OpLock en la carpeta "C:\Windows\Temp_pcmgr_scan_tmp_{}" una vez que observamos que se crea alguna carpeta {}
El proceso "QQPCRTP.exe" intentará eliminar la carpeta "C:\Windows\Temp_pcmgr_scan_tmp_{*}" con privilegio SYSTEM.
El proceso "QQPCRTP.exe" se pausará debido al OpLock
Cuando se activa el OpLock, el usuario mueve el archivo "C:\Windows\Temp_pcmgr_scan_tmp_{*}" a otro lugar para vaciar la carpeta
El usuario crea un junction "C:\Windows\Temp_pcmgr_scan_tmp_{*}" a "\RPC Control"
El usuario crea un enlace simbólico "GLOBAL\GLOBALROOT\RPC Control{*}" a la carpeta/archivo objetivo (ej., C:\Windows\System32\secrets)
El usuario libera el OpLock
El usuario elimina el enlace simbólico
El archivo/carpeta objetivo (ej., C:\Windows\System32\secrets) sería eliminado
Video de PoC: https://drive.google.com/file/d/1-8GngjK97cnfqHw0cB_GncUxzLLR2wpF/view?usp=sharing