
Documentation de CVE-2022-36162 : une vulnérabilité d'injection de commande locale dans le visualiseur PDF hovacui 1.1.0 via la variable d'environnement HOME et l'option de configuration postsave.
[Description suggérée] pdftoroff hovacui 1.1.0 est affecté par : exécution de commande. L'impact est : exécuter du code arbitraire (local). Le composant est : hovacui.c, ligne 1574. Le vecteur d'attaque est : pour exploiter la vulnérabilité, il suffit de modifier la variable d'environnement HOME, de mettre une commande en tant que postsave, d'ouvrir un fichier pdf et de l'enregistrer. Une vulnérabilité a été trouvée dans hovacui, qui peut permettre l'exécution arbitraire de commandes. ligne 1574 : 1574 system(command) ; La variable d'environnement HOME est considérée comme fiable, et l'attaquant peut la falsifier. Ensuite, l'attaquant peut saisir n'importe quelle commande comme
postsavedans le fichier de configuration, et il ne reste plus qu'à ouvrir un fichier pdf et à l'enregistrer. Cela peut avoir un impact d'exécution de code, de déni de service ou d'élévation de privilèges sur la machine.
[Informations supplémentaires] hovacui Le visualiseur pdf hovacui pour le framebuffer Linux et X11 effectue automatiquement un zoom sur les blocs de texte. Il est destiné à la visualisation de fichiers sur de petits écrans, et est particulièrement pratique pour les documents à plusieurs colonnes.
hovacui fait partie de pdftoroff, lien : https://aur.archlinux.org/packages/pdftoroff
Le chemin du fichier de configuration est trouvé de cette façon
snprintf(configfile, 4096, "%s/.config/hovacui/hovacui.conf", 3358\t\t\tgetenv("HOME"));
Nous pouvons donc simplement falsifier HOME et créer notre propre fichier de configuration.
Et pour obtenir l'exécution de commande, il suffit d'enregistrer le pdf car dans la fonction savepdf() nous avons :
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 sera entièrement contrôlé par l'attaquant :
if (sscanf(configline, "postsave %900[^
\r]", s) == 1)
output.postsave = strdup(s);
Pour enregistrer, tapez simplement d, puis suivez avec s
page web hovacui : http://sgerwk.altervista.org/hovacui/hovacui.html
[Autre type de vulnérabilité] Exécution de commande
[Fournisseur du produit] pdftoroff
[Base de code du produit affecté] hovacui - 1.1.0
[Composant affecté] hovacui.c, ligne 1574
[Type d'attaque] Local
[Impact Exécution de code] true
[Impact Déni de service] true
[Impact Élévation de privilèges] true
[Vecteurs d'attaque] Pour exploiter la vulnérabilité, il suffit de modifier la variable d'environnement HOME, de mettre une commande en tant que postsave, d'ouvrir un fichier pdf et de l'enregistrer.
[Découvreur] Maher Azzouzi