HeadlinesBriefing favicon HeadlinesBriefing.com

CVE-2025-13032: Avast এন্টিভাইরাস স্যান্ডব্যাক Flucht

Hacker News •
×

Introduction এই ব্লগ পোস্ট এভাস্টের গবেষণের দ্বিতীয় এবং শেষ অংশ এবং CVE-2025-13032-এ ফোকাস করবে, যা এভাস্টের kernel ড্রাইভারে পাওয়া একটি ডাবল-ফেচ ভুলনামা। এই পোস্ট বাগের সংক্ষেপণ করে এবং আমরা কীভাবে একটি আপডেটেড Windows 11 সিস্টেমে এটি শোষণ করেছি। যদি আপনি এটি মিস করলে প্রথম অংশ পড়ুন → https://www.safateam.com/intelligence-hub/research/technical-articles/cve-2025-13032-entering-and-breaking-the-avast-antivirus-sandbox-part-1

Bug Explanation আমরা যা শোষণ চাইছি, वह একটি ডাবল-ফেচ সমস্যা যা kernel pool overflow की ओर joht। নিচে প্রদর্শিত কড স্নিপেট ব্যবহারকারী দ্বারা সরবরাহ `_UNICODE_STRING` স CONTAINER ক্যাপচার করার জন্য supposed, কিন্তু ব্যবহারকারী ইনপুটের `Length` ক্ষেত্র একাধিকবার fetch করা হয়েছে, যা একটি ডাবল-ফেচ সমস্যা ফলস্বরূপ। প্রথম fetch একটি বাফার অ্যালোকেট করার জন্য করা হয়েছে যেখানে স্ট্রিং কপি করা হবে, এবং দ্বিতীয় fetch `memmove` করার জন্য করা হয়েছে retrieved value বিত্ত, ব্যবহারকারী যদি এই兩個 ক্রিয়া之间 মধ্যে এটি পরিবর্তন করে তবে pool overflow ফলস্বরূপ। ডাবল-ফেচের শোষণ জন্য, একটি দ্বিতীয় থ্রেড tight loop-এ চলমান, `_UNICODE_STRING` shared `Length` field-এর মধ্যে small safe value এবং large malicious value (যেমন `0x1000`, allocated buffer থেকে larger) এর মধ্যেcontinuously toggle করে। mains thread vulnerable IOCTL loop-এ কল করে। যখন timing align হয় — kernel `Length` small হিসেবে read `ExAllocatePoolWithTag` কলের জন্য, তারপর large হিসেবে read `memmove` — allocated보다 বেশি bytes copy করা হয়, pool overflow ফলস্বরূপ। प्रतিযোগिता window narrow কিন্তু moderate number of iterations-within reliably जीता जा सकता है। আমাদের লক্ষ্য এই pool overflow का শোষণ করে arbitrary kernel read/write primitive পেতে এবং local privilege escalation পেতে। এই বাগটি আমাদের জন্য ভালো exploitation conditions দেয়: overflow targets `PAGED_POOL`, allocation size এবং overflow size both controlled, এবং content also controlled। Paged Pool Windows kernel memory-এর একটি region যেখানে objects এবং data needed by kernel বা drivers, কিন্তু যা disk-এ page out হতে পারে। এটি ব্যবহার করা হয় memory-এ যা critical code running with high priority দ্বারা এক্সেস না করা হয়। The allocator groups allocations by size class, meaning same-sized objects tend to land close to each other in memory — the property that makes heap spraying viable. Since Windows 10 19H1 this is handled by the Segment Heap, which uses two backends: the LFH for small allocations, which picks free slots randomly within a size bucket, and the VS allocator for larger ones, which serves the first available chunk of the right size — each requiring a different spray strategy. We can also note that most Windows objects are stored in the paged ...