Ildizga kirishga ruxsat beruvchi Enlightenment foydalanuvchi muhitidagi zaiflik

Enlightenment foydalanuvchi muhitida (CVE-2022-37706) zaiflik aniqlandi, bu imtiyozga ega bo'lmagan mahalliy foydalanuvchiga kodni ildiz sifatida bajarishga imkon beradi. Zaiflik hali tuzatilgani yo'q (0 kun), lekin Ubuntu 22.04 da sinovdan o'tgan jamoat mulki bo'lgan ekspluatatsiya allaqachon mavjud.

Muammo enlightenment_sys executable faylida bo'lib, u suid root bayrog'i bilan birga keladi va tizim() chaqiruvi orqali ma'lum ruxsat etilgan buyruqlarni bajaradi, masalan, drayverni o'rnatish yordam dasturi bilan o'rnatish. System() chaqiruviga uzatilgan satrni tashkil etuvchi funktsiyaning noto'g'ri ishlashi tufayli bajarilayotgan buyruq argumentlaridan qo'shtirnoqlar kesiladi, bu sizning kodingizni ishga tushirish uchun ishlatilishi mumkin. Masalan, mkdir -p /tmp/net mkdir -p "/tmp/;/tmp/exploit" echo "/bin/sh" > /tmp/exploit chmod a+x /tmp/exploit enlightenment_sys /bin/ ni ishga tushirganingizda. o'rnatish - o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), "/dev/../tmp/;/tmp/exploit" /tmp/ // net

qo'sh tirnoqlar olib tashlanganligi sababli, belgilangan "/bin/mount … "/dev/../tmp/;/tmp/exploit" /tmp///net" buyrug'i o'rniga qo'sh tirnoqsiz qator uzatiladi. system() funksiyasiga ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net '/tmp/exploit /tmp///net' buyrug'ini keltirib chiqaradi. qurilmaga boradigan yo'lning bir qismi sifatida ko'rib chiqilish o'rniga alohida bajariladi. "/dev/../tmp/" va "/tmp///net" satrlari enlightenment_sys o'rnatish buyrug'i argumentini tekshirishni chetlab o'tish uchun tanlangan (o'rnatish moslamasi /dev/ da ishga tushishi va mavjud faylga ishora qilishi kerak va uchtasi O'rnatish nuqtasidagi "/" kerakli yo'l o'lchamiga erishish uchun belgilanadi).

Manba: opennet.ru

a Izoh qo'shish