
منصة كشف تفاضلي لـ CVE-2026-76036، وهي ثغرة تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في Dawn WebGPU داخل Chrome على Android. تفحص مجموعات نسيج العمق/الاستنسل (depth/stencil texture) القابلة للاستغلال وتراقب أعطال عملية GPU لتصنيف مدى تعرض المتصفح ووحدة معالجة الرسوميات (GPU).
ثغرة تجاوز سعة مخزن مؤقت في الكومة (heap buffer overflow) بمستوى حرج (CVSS 9.6, CWE-122) في Dawn، تطبيق WebGPU في Chromium، في Google Chrome على أندرويد قبل الإصدار 151.0.7922.169 (المستقر 151، صدر في 2026-08-18).
السبب الجذري، وفقًا لالتزام إصلاح Dawn
178fb7048ad3: برنامج تشغيل Vulkan الملكي من PowerVR يحسب أحجام مستويات mipmap بشكل خاطئ لنسيج العمق/القالب غير قوى العدد 2 (NPOT). استدعاء صفحة ويب لـ device.createTexture() بصيغة عمق/قالب، وأبعاد NPOT، و mipLevelCount > 1 على الأجهزة المتأثرة يفسد كومة عملية GPU.
NVD: "سمحت لمهاجم عن بُعد بتنفيذ كود تعسفي خارج بيئة الحماية عبر صفحة HTML مصممة بعناية".
الشرط الدقيق للاستغلال موجود في تقرير Chromium المقيد 540087398. لذلك يوفّر هذا المستودع أداة كشف تفاضلية، وليس استغلالًا: فهي تُعدّد التركيبة التي سمّاها التزام الإصلاح العام وتصنّف متصفحك+GPU.
| الملف | الغرض |
|---|---|
poc.html | مصفوفة فحص WebGPU — جميع صيغ العمق/القالب الخمس × أبعاد NPOT (بما في ذلك الشكل 259×127 من اختبار end2end المستبعد في Dawn) × عدد مستويات mipmap، كل منها في نطاق خطأ تحقق خاص به |
crash_monitor.py | مرافق adb — يُحدد إصدار Chrome المثبت مقابل حد الإصلاح 151.0.7922.169 ويتابع طرف logcat بحثًا عن إشارات fatal في عملية GPU |
# 1) serve the harness (WebGPU needs a secure context: localhost or HTTPS)
$ python3 -m http.server 8000
# 2) on the device (or desktop Chrome), open:
# http://<your-host>:8000/poc.html (localhost/http works; remote hosts need HTTPS)
# 3) from a host with adb, watch the GPU process:
$ python3 crash_monitor.py
[*] com.android.chrome versionName=151.0.7922.83
[!] VULNERABLE — below the 151.0.7922.169 fix floor (CVE-2026-76036)
[*] logcat: live tail — Ctrl-C to stop. Load poc.html on the device now.
poc.htmlتعمل الأداة على تخفيف سرعة كل فحص (~150 مللي ثانية) بحيث يبقى جهاز المختبر حيًا لفترة كافية لإصدار حكم بدلًا من الانهيار عند أول نسخة متباينة.
شغّل الأداة فقط ضد الأجهزة والمتصفحات التي تملكها أو تديرها. على الأجهزة غير المصححة والمتأثرة، فإن الخلل الأساسي هو مُحفّز حقيقي لفساد الذاكرة؛ وتتجنب الأداة عمدًا أي محاولة لتشكيل هذا الفساد.
| الملاحظة | المعنى |
|---|
| خطأ تحقق يحتوي على الرسالة "disallowed on this device due to a driver bug" | الإصلاح مفعّل + GPU ضمن فئة PowerVR المتأثرة (كان الجهاز قابلًا للاستغلال قبل التصحيح؛ تأكد من أن الإصدار ≥ 151.0.7922.169) |
| تم قبول التركيبات دون أي خطأ من هذا القبيل | GPU خارج فئة Imagination المتأثرة — لا يمكن الوصول إليه عبر هذا المسار |
إطلاق device.lost في منتصف المسح / إشارة Fatal signal في عملية GPU داخل logcat على Chrome < 151.0.7922.169 | سلوك ما قبل التصحيح الذي وُجد هذا CVE لإزالته — حدّث فورًا |
navigator.gpu غير معرّف | WebGPU غير متاح — سطح الهجوم مغلق |