
Prueba de concepto para CVE-2022-42045: inyección de código arbitrario en modo kernel a través del controlador amsdk.sys de Zemana, permitiendo la escalada de privilegios local de administrador a kernel en Windows de 64 bits.
Descubrimos una inyección de código arbitraria en el controlador de modo kernel amsdk.sys de Zemana, parte del SDK Antimalware de Zemana. La vulnerabilidad permite inyectar un código arbitrario en una de las secciones de código del controlador y luego ejecutarlo con privilegios de modo kernel (escalada de privilegios locales de administrador a modo kernel). Esta vulnerabilidad podría usarse, por ejemplo, para deshabilitar la aplicación de firma de controladores y luego instalar controladores de modo kernel no firmados.
La función vulnerable se encuentra en el desplazamiento 0xBF60 desde el inicio de la sección .text de amsdk.sys. Esta función invoca a otra en el desplazamiento 0xD664. La función en el desplazamiento 0xD664 recibe 4 argumentos:
IOCTL 0x80002044 llama a la función en el desplazamiento 0xBF60 (sección .text) y permite llenar el stub en la sección .hook con un código arbitrario controlado por el usuario. IOCTL 0x80002014 (lectura mediante SCSI) o IOCTL 0x80002018 (escritura mediante SCSI) transfiere el control a este stub rellenado.
Al menos Watchdog Anti-Malware 4.1.422, Zemana AntiMalware 3.2.28. Estos productos tienen el mismo controlador vulnerable pero firmado con diferentes certificados.
Zemana AntiLogger v2.74.2.664 tiene la misma vulnerabilidad. Controladores vulnerables: zamguard64.sys, zam64.sys.
Versiones de 64 bits de Windows: desde Windows 7 hasta Windows 11
Desinstale los productos Zemana o Watchdog Antimalware. Agregue las firmas de los controladores a la lista negra.
