یه آسیب پذیری Buffer Overflow در لودر داینامیک ld.so در کتابخونه GNU C پیدا شده، که به یه مهاجم محلی امکان افزایش امتیاز به root رو میده.
این آسیب پذیری دارای شناسه CVE-2023-4911 و معروف به Looney Tunables هستش.
کتابخونه GNU C که بهش glibc هم میگن، کتابخونه C سیستم گنو هستش و در اغلب سیستم های مبتنی بر کرنل لینوکس وجود داره. یسری عملکردهای ضروری مثله system callها (مثلا open ، malloc ، printf ، exit) و … که برای اجرای برنامه ها ضروری هستن رو ارائه میدن.
لودر داینامیک (dynamic loader) در glibc مسئول آماده سازی و اجرای برنامه در سیستم لینوکس هستش که از glibc استفاده میکنن، بنابراین اهمیت بالایی داره.
این آسیب پذیری توسط محققای Qualys Threat Research Unit کشف شده و در آوریل 2021 با انتشار glibc 2.34 از طریق commitای با توضیح اصلاح رفتار SXID_ERASE در برنامه های setuid معرفی شد.
آقای Saeed Abbasi ، که مدیر محصول Qualys Threat Research Unit هستش، اعلام کرده ، اکسپلویتی که برای این آسیب پذیری توسعه دادن، منجر به گرفتن امتیاز کامل root روی توزیعهای اصلی مانند دبیان، فدورا و اوبونتو شده که این نشون دهنده شدت و گستردگی آسیب پذیری میتونه باشه. این میتونه سیستم های زیادی رو تحت تاثیر بزاره بخصوص اینکه از glibc در توزیعهای زیادی استفاده میشه.
البته کد اکسپلویتشون رو منتشر نکردن اما اعلام کردن که چون میشه این buffer overflow رو به راحتی به data-only attack تبدیل کرد، بنابراین تیم های تحقیقاتی دیگه روش کار میکنن و اکسپلویت رو منتشر میکنن.
حملات Data-only به جای اینکه جریان اجرای برنامه رو هدف قرار بده، داده های برنامه رو تارگت میکنه. مثلا اگه بتونیم تمام آرگومانهای تابعی مثله execve رو کنترل کنیم، میتونیم کد دلخواه اجرا کنیم.
نکته جالب اینه که تو اکسپلویت لینوکس برای اجرای شلکد، خیلی وقتا سراغ همین glibc میرن، حالا یه آسیب پذیری هم داشته باشه که دیگه نور علی نوره.
آسیب پذیری در پردازش متغیر محیطی GLIBC_TUNABLES در نصب های پیش فرض Debian 12 و 13 ، Ubuntu 22.04 و 23.04 ، Fedora 37 و 38 رخ میده. Alpine Linux به دلیل اینکه از musl libc استفاده میکنه، تحت تاثیر آسیب پذیری نیستش.
مهاجم محلی میتونه یه متغیر محیطی GLIBC_TUNABLES مخرب ایجاد کنه و وقتی باینری با پرمیشن SUID اجرا میشه، میتونه کد دلخواه با امتیاز بالا اجرا کنه.
در سالهای اخیر آسیب پذیری های مختلف با شدت بالا توسط محققای Qualys در سیستم های لینوکسی کشف و گزارش شده از جمله : PwnKit ، Sequoia ، Baron Samedit
جزییات کامل آسیب پذیری رو میتونید اینجا مشاهده کنید.
انتشار PoC:
همونطور که آقای سعید عباسی پیش بینی کرده بود، برای این آسیب پذیری چند تا PoC منتشر شده، از جمله اکسپلویت توسعه داده شده توسط محقق امنیتی Peter Geissler (blasty) که توسط آقای Will Dormann هم بررسی و تایید شده.
این اکسپلویت در پایتون توسعه داده شده و روی glibc 2.35-0ubuntu3 (aarch64) و glibc 2.36-9+deb12u2 (amd64) هم تست شده.
قطعا گیتهاب و کانالهای تلگرامی پر از اکسپلویتهای این آسیب پذیری خواهد شد که در استفاده از اونا دقت کنید تا خودتون اکسپلویت نشید.