کتابخانه libinput 1.20.1 که یک پشته ورودی یکپارچه را فراهم می کند که به شما امکان می دهد از ابزارهای مشابه پردازش رویدادها از دستگاه های ورودی در محیط های مبتنی بر Wayland و X.Org استفاده کنید، آسیب پذیری (CVE-2022-1215) را از بین برده است. به شما این امکان را می دهد که اجرای کد خود را هنگام اتصال یک دستگاه ورودی ویژه اصلاح شده/تقلید شده به سیستم سازماندهی کنید. این مشکل خود را در محیطهای مبتنی بر X.Org و Wayland نشان میدهد و میتواند هم هنگام اتصال دستگاهها به صورت محلی و هم هنگام دستکاری دستگاهها با رابط بلوتوث مورد سوء استفاده قرار گیرد. اگر سرور X به صورت روت در حال اجرا باشد، آسیب پذیری اجازه می دهد تا کد با امتیازات بالا اجرا شود.
مشکل به دلیل یک خطای قالب بندی خط در کد مسئول خروجی اطلاعات اتصال دستگاه به گزارش است. به طور خاص، تابع evdev_log_msg، با استفاده از فراخوانی به snprintf، رشته قالب بندی اصلی ورودی گزارش را تغییر داد، که نام دستگاه به عنوان پیشوند به آن اضافه شد. سپس رشته اصلاح شده به تابع log_msg_va ارسال شد که به نوبه خود از تابع printf استفاده کرد. بنابراین، اولین آرگومان برای printf، که تجزیه نویسههای قالب برای آن اعمال شد، حاوی دادههای خارجی نامعتبر بود و مهاجم میتواند با وادار کردن دستگاه به بازگرداندن نامی حاوی کاراکترهای قالب رشته (مثلاً "Evil %s") خرابی پشته را آغاز کند. .
منبع: opennet.ru