جرقه اول؛ وقتی نقاش آدرس را گم میکند! (بخش دوم: بررسی باگ)
در پست قبلی گفتیم که پردازنده گرافیکی برای مدیریت نقاشیهایش یک کمد بایگانی به نام FreeList دارد. حالا آسیبپذیری اصلی که با شناسه CVE-2025-25180 ثبت شده، دقیقاً در همین بخش اتفاق میافتد.
وقتی یک برنامه یا بازی اجرا میشود، درایور گرافیک شروع به ساختن یک FreeList جدید در حافظه میکند. برای این کار، یکسری پارامتر و عدد به سختافزار داده میشود. اما محققان گوگل متوجه شدند اگر این اعداد و پارامترها را به شکل خاص و بدخواهانهای دستکاری کنند، یک بخش حیاتی به نام ثباتگر یا ریجسترِ پوینترِ استکِ فریلیست (FL Stack Pointer Register) دچار اختلال و خرابکاری (Corruption) میشود.
💡 به زبان ساده یعنی چی؟
پوینتر (Pointer) در دنیای کامپیوتر یعنی «اشارهگر» یا آدرس. فرض کنید به نقاش میگویید: «وسایلت را در کمد شماره ۱۰ بگذار». اما به خاطر این باگ، مغز نقاش اصطلاحاً ردیف میکند و آدرس کمد ۱۰ را اشتباهی «اتاق گاوصندوق رئیس» میخواند!
اینجا پردازنده گرافیکی از محدوده حافظه مجازی مجاز خودش خارج میشود (Out-of-bound GPU VA). در نتیجه، سیستم امنیتی کنترل حافظه سختافزاری (MMU) که مثل یک دیوار بین گرافیک و بقیه سیستم است، کاملاً دور زده میشود.
حالا پردازنده گرافیکی فریب خورده و شروع به نوشتن دادههای گرافیکی روی صفحات حافظه فیزیکی دلخواه سیستم (Arbitrary Physical Memory Pages) میکند! یعنی جایی که اصلاً و ابداً اجازه دسترسی به آن را نداشته است.
اما چطور میشود از این نوشتنِ اشتباه، برای هک کردن کل گوشی استفاده کرد؟
پست بعدی را دنبال کنید. 👇
🆔 @androidSec_fa
#ExploitDev #Vulnerability #CVE_2025_25180 #KernelHacking #Part2
Post #109
67
اندروید | امنیت و هک معماری پردازنده گرافیکی به زبان آدمیزاد! (بخش اول: کارگاه نقاشی) خیلی از ما فکر میکنیم کارت گرافیک یا همان GPU داخل گوشی، فقط یک قطعه برای بالا آوردن بازیها یا رندر کردن ویدیوهاست. اما در دنیای هک و امنیت، پردازنده گرافیکی یکی از خطرناکترین و جذابترین…
- 👍 3