This media is not supported in your browser
VIEW IN TELEGRAM
#Redis #UAF #RCE
سرویس Redis یک سرویس در خصوص Cache کردن مقادیر لایه 7 است که بطور مشخص تلاش میکند تا داده های سمت کاربر را در صورت نداشتن الگوی جدید، بازتاب داده و کاربر به سمت سرور اصلی مراجعه نکند و اینطور سرعت سایت بالا رود.

اما Redis از مفسر Lua برای اجرای اسکریپت ها استفاده میکند که مفسر از یک Garbage Collector برای مدیریت خودکار حافظه بهره میبرد، این GC در پردازش حافظه Heap دچار آسیب پذیری Use After Free یا مراجعه بعد از آزاد سازی را دارا است.

در اسکریپت Lua مهاجم اقدام به تعریف یک آرایه بی مقدار کرده که آرایه در حافظه Heap توسط GC تعریف میشود و بعد از عدم مراجعه به آرایه ساخته شده، حافظه آزاد خواهد شد.

در ادامه از تکنیک Heap Spray استفاده کرده تا تمامی مناطق حافظه را بازنویسی کرده و آن بخش که از قبل رزرو و آزاد شده است، بازنویسی شده و مهاجم بر روی حافظه Interpreter اقدام به نوشتن ماشین کد کند که در این صورت بدلیل اجرای Interpreter در سطح Root، کد مخرب مهاجم نیز در بالاترین سطح اجرا خواهد شد.

این موضوع Sandbox خود Lua را نیز دور زده و کد میتواند به محیط بیرونی دسترسی داشته باشد.

@Unk9vvN