I libinput-biblioteket 1.20.1, der tilbyder en ensartet inputstack, der muliggør anvendelse af de samme metoder til behandlingen af hændelser fra inputenheder i Wayland- og X.Org-miljøer, er der blevet rettet en sårbarhed (CVE-2022-1215), som tillader udførelse af brugerdefineret kode ved tilslutning af et specialmodificeret/emuleret inputdevice til systemet. Problemet opstår i miljøer baseret på X.Org og Wayland, og kan udnyttes både ved lokal tilslutning af enheder og ved manipulation af enheder med Bluetooth-interface. Hvis X-serveren kører med root-rettigheder, kan sårbarheden føre til udførelse af kode med forhøjede privilegier.
Problemet skyldes en fejl i formatteringen af strenge i koden, der håndterer logningen af oplysninger om tilslutning af enheder. Specifikt ændrede funktionen evdev_log_msg den oprindelige logformatstreng med et kald til snprintf, hvori enhedens navn blev tilføjet som præfiks. Den ændrede streng blev derefter sendt til funktionen log_msg_va, der igen anvendte funktionen printf. Dermed endte ukontrollerede eksterne data i det første argument til printf, hvor parsing af formatteringssymboler anvendtes, hvilket gjorde det muligt for en angriber at forårsage et stack-forvrængning ved at returnere et enhedsnavn, der indeholdt formatteringssymboler (f.eks. “Evil %s”).
Kilde: opennet.ru
