
Documentación de CVE-2022-36162: una vulnerabilidad de inyección de comandos local en el visor de PDF hovacui 1.1.0 a través de la variable de entorno HOME y la opción de configuración postsave.
[Descripción sugerida] pdftoroff hovacui 1.1.0 está afectado por: Ejecución de comandos. El impacto es: ejecutar código arbitrario (local). El componente es: hovacui.c, línea 1574. El vector de ataque es: Para explotar la vulnerabilidad, solo tienes que cambiar la variable de entorno HOME, poner algún comando como postsave, abrir un archivo pdf y guardarlo. Se encontró una vulnerabilidad en hovacui, que puede permitir la ejecución arbitraria de comandos. línea 1574: 1574 system(command); La variable de entorno HOME es de confianza, y el atacante puede falsearla. Entonces el atacante puede ingresar cualquier comando como
postsaveen el archivo de configuración, y todo lo que queda es abrir un archivo pdf y guardarlo. Esto puede tener un impacto de Ejecución de Código, Denegación de Servicio o EoP en la máquina.
[Información adicional] hovacui El visor de pdf hovacui para el framebuffer de Linux y X11 amplía automáticamente los bloques de texto. Está diseñado para ver archivos en pantallas pequeñas, y es especialmente útil para documentos de múltiples columnas.
hovacui es parte de pdftoroff, enlace: https://aur.archlinux.org/packages/pdftoroff
La ruta del archivo de configuración se encuentra así:
snprintf(configfile, 4096, "%s/.config/hovacui/hovacui.conf", 3358\t\t\tgetenv("HOME"));
Así que podemos simplemente falsear HOME y crear nuestro propio archivo de configuración.
Y para obtener ejecución de comandos solo guardamos el pdf porque en la función savepdf() tenemos:
else { cairoui_printlabel(cairoui, output->help, NO_TIMEOUT, "saved to %s", path); if (post && output->postsave != NULL) { command = malloc(strlen(output->postsave) + 100); sprintf(command, output->postsave, fileno, fileno); system(command); free(command); } return CAIROUI_DONE; }
}
output->postsave será completamente controlado por el atacante:
if (sscanf(configline, "postsave %900[^
\r]", s) == 1)
output.postsave = strdup(s);
Para guardar solo ingresa d, luego síguelo con s
página web de hovacui: http://sgerwk.altervista.org/hovacui/hovacui.html
[Tipo de vulnerabilidad Otro] Ejecución de comandos
[Vendedor del producto] pdftoroff
[Base del código del producto afectado] hovacui - 1.1.0
[Componente afectado] hovacui.c, línea 1574
[Tipo de ataque] Local
[Impacto Ejecución de código] verdadero
[Impacto Denegación de servicio] verdadero
[Impacto Escalada de privilegios] verdadero
[Vectores de ataque] Para explotar la vulnerabilidad, solo tienes que cambiar la variable de entorno HOME, poner algún comando como postsave, abrir un archivo pdf y guardarlo.
[Descubridor] Maher Azzouzi