أنظمة ECC في بطاقات الرسوميات صُممت لتكون خط الدفاع الأساسي ضد أخطاء الذاكرة، بما فيها الانقلابات العشوائية للبتات. لكن هجومًا بحثيًا جديدًا باسم GPUThor أظهر أن هذا الافتراض لم يعد كافيًا وحده على بعض بطاقات NVIDIA المزودة بذاكرة GDDR6.

المفارقة التقنية هنا أن الهجوم لا يكتفي بإحداث bit flips داخل ذاكرة الـGPU، بل يستطيع في سيناريوهات محددة دفع الخطأ إلى مستوى أخطر بكثير: إفساد جداول الصفحات، الوصول إلى ذاكرة خارج حدود العملية، ثم رفع الصلاحيات على النظام المضيف حتى الحصول على root shell.

طوّر الهجوم باحثون من University of Toronto، واختبروه على أربع بطاقات من فئة Ampere المخصصة لمحطات العمل: RTX A6000 وRTX A5000 وRTX A4500 وRTX A4000. والنتيجة الأهم ليست فقط أن البطاقات أظهرت قابلية لـRowhammer، بل أن GPUThor تمكن من إنتاج أخطاء متعددة البتات تتجاوز حدود الحماية التي يوفرها SECDED ECC.

#TL;DR

  • GPUThor هو هجوم Rowhammer يستهدف بعض بطاقات NVIDIA Ampere المزودة بذاكرة GDDR6.
  • يتطلب الهجوم القدرة على تشغيل CUDA kernel غير موثوق أو غير مميز على الـGPU المستهدف.
  • البطاقات التي ثبتت قابليتها للاختبار هي: RTX A6000 وRTX A5000 وRTX A4500 وRTX A4000.
  • الهجوم يستخدم نمط non-uniform hammering لتجاوز دفاعات Target Row Refresh (TRR) ورفع عدد bit flips بشكل كبير.
  • مع تفعيل ECC، تمكن الباحثون من إحداث أخطاء DUE وأيضًا Silent Data Corruption (SDC)، ثم استخدام بعض هذه الأخطاء للوصول إلى رفع صلاحيات على المضيف.
  • لا يوجد CVE للهجوم، ولا يوجد Patch يعالج المشكلة بشكل كامل. الإصلاح الجذري، وفق الباحثين، يتطلب آليات تصحيح أخطاء أقوى ودفاعات داخل DRAM في أجيال مستقبلية.

#لماذا GPUThor مختلف عن هجمات GPU Rowhammer السابقة؟

سبق للفريق نفسه أن قدم GPUHammer، وهو أول هجوم Rowhammer تم عرضه عمليًا على عتاد NVIDIA GPU. في ذلك العمل، تمكن الباحثون من إحداث نحو 16 bit flips per gigabyte على بطاقة RTX A6000، لكن تفعيل ECC كان كافيًا لإيقاف الهجوم عمليًا.

GPUThor يغيّر هذه المعادلة.

بدل الاعتماد على نمط طرق متساوٍ تقريبًا بين الصفوف المهاجمة والصفوف الوهمية، يستخدم الهجوم ما يسمى non-uniform hammering. الفكرة هي جعل صف الـDRAM المهاجم المجاور للصف الضحية يتلقى عددًا أكبر بكثير من عمليات التفعيل، بينما تستخدم صفوف أخرى كـdecoy rows بهدف إرباك آلية Target Row Refresh (TRR).

TRR هي دفاع داخل الذاكرة يحاول اكتشاف الصفوف التي يتم تفعيلها بصورة غير طبيعية، ثم تحديث الصفوف المجاورة لحمايتها من تسرب الشحنة الذي يؤدي إلى bit flips.

في هجمات سابقة، كان توزيع عمليات التفعيل أكثر انتظامًا. أما في GPUThor، فقد صُمم النمط بحيث يركز الضغط الحقيقي على الصف المطلوب، مع الحفاظ على نشاط كافٍ في الصفوف الأخرى لتقليل فرص تدخل TRR بالشكل المتوقع.

#ما الذي يحتاجه المهاجم لبدء الهجوم؟

الهجوم لا يبدأ من وصول مباشر إلى root أو إلى ذاكرة النظام.

المتطلب الأساسي هو القدرة على تشغيل CUDA kernel غير مميز على بطاقة الرسوميات المستهدفة. ويعني ذلك أن الهجوم يصبح ذا صلة خصوصًا في حالتين:

  1. وجود أكثر من مستأجر أو workload على بطاقة GPU مشتركة.
  2. السماح بتشغيل CUDA workloads غير موثوقة على جهاز يملك بطاقة من الفئة المتأثرة.

بمعنى آخر، نقطة البداية هي وصول حساب أو workload محدود الصلاحيات إلى موارد الـGPU، وليس سيطرة كاملة على المضيف.

وهذا ما يجعل سيناريو مشاركة الـGPU بين أكثر من tenant مهمًا أمنيًا: إذا كان أحد المستأجرين قادرًا على تشغيل kernel خاص به على البطاقة نفسها التي تستخدمها workloads أخرى، فإن العزل المنطقي يصبح مرتبطًا أيضًا بسلامة الذاكرة الفيزيائية للـGPU نفسه.

#البطاقات التي أثبتت الاختبارات قابليتها

أجرى الباحثون حملات hammering لمدة 24 ساعة لكل بنك DRAM على أربع بطاقات Ampere، وتمكنوا من إحداث bit flips على جميعها:

البطاقةالذاكرة
RTX A600048 GB GDDR6
RTX A500024 GB GDDR6
RTX A450020 GB GDDR6
RTX A400016 GB GDDR6

مع تعطيل ECC، أنتجت حملات الاختبار ما بين 72,000 و377,000 bit flips per gigabyte.

وكانت RTX A5000 الأكثر تأثرًا، إذ سجلت:

377,552 bit flips per gigabyte

وهو رقم يزيد بنحو 23,597 مرة عن معدل GPUHammer السابق البالغ 16 flips per gigabyte، ويزيد قرابة 500 مرة عن معدل GDDRHammer البالغ 758 flips per gigabyte.

ووفق الورقة، يقترب هذا المعدل من نحو 550,000 flips per gigabyte الذي حققه هجوم Blacksmith على DDR4، وهو العمل الذي أثبت سابقًا أن non-uniform hammering يمكن أن يكون وسيلة فعالة لتجاوز دفاعات DRAM الداخلية.

#كيف يزيد GPUThor عدد عمليات DRAM الفعلية؟

أحد أكثر أجزاء البحث أهمية يتعلق بالطريقة التي تتعامل بها وحدة التحكم بالذاكرة في الـGPU مع عمليات الوصول المتكررة.

داخل معمارية NVIDIA، تعمل مجموعة من 32 thread معًا فيما يسمى warp. وجد الباحثون أن عمليات الوصول المتكررة التي تصدر داخل warp واحد يمكن أن تقوم وحدة التحكم بالذاكرة بدمجها، بحيث تتحول عدة عمليات منطقية إلى تفعيل DRAM واحد فقط.

هذا السلوك يقلل فاعلية hammering إذا كان المهاجم يعتمد على تكرار الوصول داخل warp واحد.

لكن عند توزيع الوصول من warps مختلفة إلى cache lines مختلفة داخل الصف نفسه، تبقى هذه العمليات منفصلة عند مستوى الذاكرة، وتتحول إلى activations متعددة حقيقية.

بناء على ذلك، صمم GPUThor kernels توزع عمليات الوصول بطريقة ترفع عدد تفعيلات DRAM الفعلية، بدل أن تضيع نسبة كبيرة من المحاولات بسبب الدمج داخل وحدة التحكم.

#استهداف TRR بنمط غير منتظم

أظهرت القياسات التي أوردها الباحثون أن TRR في شرائح GDDR6 محل الاختبار لا يبدو أنه يعمل في كل refresh interval.

بحسب النتائج المنشورة، رجح الباحثون أن آلية TRR قد تطبق تقريبًا مرة كل 72 refresh intervals.

استنادًا إلى هذا السلوك، بنوا نمط hammering مكونًا من ستة intervals، بحيث تتم موازنة عمليات الوصول بين الصف المهاجم الحقيقي والصفوف الوهمية بصورة مدروسة.

هذه النقطة هي جوهر GPUThor: الهجوم لا يعتمد فقط على زيادة عدد accesses، بل على توقيتها وتوزيعها بما يتوافق مع سلوك دفاع الذاكرة نفسها.

#ماذا يحدث مع ECC؟

الحماية المستخدمة على هذه البطاقات هي SECDED، أي:

Single-Error-Correct, Double-Error-Detect

وتستطيع هذه الآلية عادة:

  • تصحيح خطأ ببت واحد داخل الوحدة المحمية.
  • اكتشاف خطأ من بتين.
  • لكنها لا تضمن التصحيح الصحيح عند حدوث ثلاثة أخطاء أو أكثر.

في تجارب GPUThor مع تعطيل ECC، وجد الباحثون على مستوى granularity بحجم 16 bytes ما مجموعه:

  • 387 حالة double-bit flips.
  • حالتان triple-bit flips.

وكانت RTX A5000 مسؤولة عن 306 من حالات الـdouble-bit وعن حالتي الـtriple-bit كلتيهما.

المشكلة الأخطر هي أن SECDED ECC قد يفسر خطأ الثلاثة بتات بصورة خاطئة، ثم يقوم بما يشبه "تصحيح" غير صحيح للبيانات. النتيجة هي Silent Data Corruption (SDC)، أي تلف في البيانات لا يتم إيقاف النظام بسببه فورًا.

#اختبار RTX A6000 مع ECC مفعّل

على بطاقة RTX A6000 مملوكة للباحثين، ومع تفعيل ECC، أدى hammering لبنك واحد لمدة يوم إلى:

  • 11 أخطاء Detectable Uncorrectable Errors (DUE).
  • خطأ واحد Silent Data Corruption (SDC).

وبحسب القياسات، كان متوسط ظهور DUE واحد كل ساعتين تقريبًا.

كل DUE يؤدي إلى إيقاف جميع kernels العاملة على البطاقة، وتصبح البطاقة غير قابلة للاستخدام حتى تنفيذ reset.

هذا وحده يجعل الهجوم قادرًا على إنتاج Denial-of-Service (DoS) ضد workloads المعتمدة على الـGPU.

لكن الباحثين ذهبوا أبعد من ذلك: بعض هذه الأخطاء لم تكن مجرد crashes، بل أمكن تحويلها إلى primitives مفيدة للاستغلال.

#من bit flip إلى إفساد Page Table

لرفع الصلاحيات، أعاد الباحثون استخدام كود الاستغلال من عملهم السابق GPUBreach، الذي ركز على رفع الصلاحيات عبر جداول صفحات الـGPU.

تبدأ العملية بتهيئة الذاكرة بحيث يتم وضع page tables في صف DRAM معروف بأنه قابل للتأثر.

بعد ذلك، يتم hammering للصفوف المجاورة بهدف قلب بتات داخل Page Table Entry (PTE).

إذا أصاب الانقلاب الجزء الذي يحتوي على Page Frame Number (PFN)، يمكن تغيير المكان الذي تشير إليه الصفحة.

عندها يصبح kernel ثانٍ قادرًا على الوصول إلى ذاكرة لا تنتمي إلى العملية الأصلية من خلال الـPTE المتضرر.

بهذه الطريقة، لا يعود الـbit flip مجرد تلف عشوائي في البيانات، بل يتحول إلى تغيير في خريطة الذاكرة نفسها.

#الوصول إلى root مع IOMMU مفعّل

استخدم الباحثون حالة triple-bit SDC لتحقيق السيناريو الأخطر.

مع IOMMU مفعّل، تمكنوا من الوصول إلى رفع صلاحيات على المضيف والحصول على root.

وجود IOMMU يفترض أن يقيد وصول الجهاز إلى ذاكرة النظام، لذلك فإن نجاح الاستغلال في هذا السيناريو مهم: الهجوم لم يعتمد فقط على غياب عزل DMA على مستوى المضيف.

بمجرد إفساد مدخل جدول الصفحة بالشكل المناسب، تم توجيه Page Table Entry إلى ذاكرة CPU.

بعد ذلك، قام الاستغلال بالوصول إلى بنية credentials الخاصة بالعملية على المضيف وكتابتها لتغيير الصلاحيات.

النتيجة النهائية كانت وصولًا بصلاحيات root shell.

#استغلال DUE حتى عندما يكون الخطأ غير قابل للتصحيح

المثير في البحث أن أخطاء DUE نفسها لم تكن عديمة الفائدة هجوميًا.

عادةً يفترض أن الخطأ غير القابل للتصحيح سيؤدي إلى قتل workload وإيقاف الهجوم. لكن الباحثين وجدوا أن معالجة DUE في بعض NVIDIA GPUs تتم بصورة متأخرة نسبيًا.

بحسب الورقة، توجد نافذة زمنية تقارب:

~10 ms

بين اكتشاف DUE وبين قتل الـGPU workload.

خلال هذه الفترة القصيرة، قد يستمر kernel المهاجم في استهلاك البيانات المتضررة.

هذا يعني أن خطأ double-bit الذي يفترض أن يؤدي إلى اكتشاف المشكلة وإيقاف العمل قد يظل قابلًا للاستغلال قبل اكتمال عملية الإنهاء.

وباستخدام هذا السلوك، تمكن الباحثون من رفع الصلاحيات على المضيف في الأنظمة التي يكون فيها IOMMU معطلًا.

#زمن البحث عن أخطاء قابلة للاستغلال

العثور على multi-bit errors مناسبة للاستغلال ليس فوريًا.

على RTX A6000، استغرق تحديد أخطاء متعددة البتات قابلة للاستخدام من دون التسبب مباشرة في DUE نحو أربعة أيام.

أما سلسلة رفع الصلاحيات الكاملة على البطاقة نفسها، فقد ورد في المصدر أنها استغرقت 21.9 hours في سيناريو، في حين أن استخدام أنماط GPUHammer وGPUThor قاد إلى تنفيذ العملية في 1.1 minutes.

هذه الأرقام توضح أن هناك فرقًا بين مرحلة اكتشاف مواضع الذاكرة القابلة للاستغلال وبين تشغيل exploit بعد معرفة النمط والموقع المناسبين.

#بطاقات أخرى لم تظهر عليها bit flips

اختبر الباحثون الأنماط نفسها على أجزاء أخرى من NVIDIA ولم يلاحظوا bit flips، وتشمل:

  • A10 مع GDDR6.
  • L4 مع GDDR6.
  • L40 مع GDDR6.
  • RTX 4090 مع GDDR6X.
  • A30 مع HBM2e.

كما اختبروا أنواعًا أخرى من الذاكرة، بما فيها HBM وGDDR6X وأجيال أحدث من GDDR6 على NVIDIA GPUs، ولم تظهر عليها انقلابات بتات باستخدام أنماط GPUThor.

ويرجح الباحثون أن السبب هو اختلاف تطبيقات TRR في هذه الأنواع مقارنةً ببطاقات A4000-A6000.

بطاقتا A100 وH100 لم تكونا ضمن مجموعة الاختبار.

لذلك لا يمكن استنتاج قابليتهما أو عدم قابليتهما للهجوم من نتائج هذه الورقة.

#ماذا عن بطاقات Server-class Ampere والأجيال الأحدث؟

تتضمن بعض بطاقات NVIDIA من فئة server-class في Ampere وما بعدها آليات مثل:

Error Containment

و:

Dynamic Page Offlining

وتهدف هذه الخصائص إلى احتواء أخطاء الذاكرة داخل التطبيق أو عزل الصفحات المتضررة بدل إسقاط البطاقة بالكامل.

مع ذلك، أشار الباحثون إلى أن هذه الأنظمة ما زالت تعتمد على ECC بمستوى SECDED.

وبحسب تقييمهم، يمكن أن يظل مسار الاستغلال المعتمد على SDC ممكنًا نظريًا ضدها، لأن جوهر المشكلة هو حدوث multi-bit corruption لا يستطيع SECDED التعامل معه بصورة مضمونة.

أما RAS Repair في بعض بطاقات Blackwell، فيرى الباحثون أنه يجعل المسار المعتمد على DUE أكثر استهلاكًا للوقت، لكنه لا يمنعه بشكل كامل وفق ما ورد في الورقة.

#ما الذي يعنيه GPUThor من منظور العزل والمخاطر؟

المشكلة الأساسية لا تتعلق فقط بموثوقية ذاكرة الـGPU.

في البيئات التي تشغّل workloads غير موثوقة أو تسمح بمشاركة GPU بين أكثر من tenant، تتحول مشكلة فيزيائية في DRAM إلى مشكلة عزل وصلاحيات.

إذا استطاع workload محدود الصلاحية تغيير bits داخل page tables، فحدود العزل التي تفرضها البرمجيات قد تصبح غير كافية، لأن المهاجم يتلاعب بالبنية التي تعتمد عليها عملية ترجمة العناوين نفسها.

أما على مستوى الاستمرارية التشغيلية، فإن DUE المتكرر يمكن أن يوقف جميع kernels على البطاقة ويجعلها غير قابلة للاستخدام حتى reset، ما يعطي الهجوم جانبًا مباشرًا من Denial-of-Service.

لهذا السبب، لا ينبغي النظر إلى ECC هنا على أنه آلية تمنع Rowhammer بالكامل، بل كآلية ترفع صعوبة الاستغلال وتقلل احتمالات نجاحه دون أن تلغيها في جميع الحالات التي اختبرها الباحثون.

#Detection وMitigation

لم يُعلن عن Patch يعالج GPUThor بشكل كامل.

التوصيات الواردة في المادة تشمل:

  • تجنب مشاركة GPU بين tenants غير موثوقين.
  • مراقبة عدادات أخطاء ECC.
  • تقييد تشغيل CUDA workloads غير موثوقة.
  • الاستمرار في تفعيل ECC، رغم أنه لم يعد يُعتبر دفاعًا كافيًا بمفرده ضد هذا النوع من الهجوم.

وكانت NVIDIA قد ذكرت في إشعار أمني في يوليو 2025، عقب عمل GPUHammer السابق، أن تفعيل System-Level ECC يخفف مشكلة Rowhammer على A6000.

لكن GPUThor أظهر أن وجود ECC لا يمنع جميع مسارات الاستغلال، خصوصًا عند الوصول إلى أخطاء multi-bit مثل triple-bit SDC.

بحسب الباحثين، الإصلاح الكامل يتطلب تغييرات أعمق في الأجيال المستقبلية، مثل:

  • آليات أقوى لتصحيح أخطاء متعددة البتات.
  • دفاعات داخل DRAM مثل Refresh Management.
  • أو Per-Row Activation Counting.

#حالة الإفصاح والإصدار

تم إبلاغ NVIDIA بهجوم GPUThor في 29 أبريل 2026، كما تم إبلاغ Google وMicrosoft وAWS.

استمرت فترة الحظر على النتائج حتى 25 أغسطس 2026.

أصدرت NVIDIA لاحقًا Security Notice يتضمن إرشادات مرتبطة بالهجوم.

حتى 27 أغسطس 2026:

  • لا يحمل GPUThor معرف CVE.
  • لم يتم الإبلاغ عن استغلال فعلي للهجوم في البرية.
  • لا يوجد Patch يعالج الهجوم بشكل كامل.

ومن المقرر نشر كود الهجوم علنًا في 15 نوفمبر 2026، وهو يوم افتتاح مؤتمر ACM Conference on Computer and Communications Security الذي ستعرض فيه الورقة البحثية.

#الخلاصة

تكمن أهمية GPUThor في أنه يغيّر الافتراض الأمني حول ECC على الـGPU.

في GPUHammer، كان تفعيل ECC كافيًا لإيقاف مسار Rowhammer المعروف. أما هنا، فقد أثبت الباحثون أن نمط hammering أكثر دقة يمكنه دفع الذاكرة إلى أخطاء متعددة البتات تتجاوز قدرة SECDED، ثم تحويل بعض هذه الأخطاء إلى SDC أو حتى استغلال DUE قبل اكتمال إيقاف الـGPU.

النتيجة أن المشكلة لم تعد مجرد "bit flips في ذاكرة رسومية"، بل أصبحت سلسلة استغلال يمكن أن تبدأ من CUDA kernel غير مميز، تمر عبر DRAM وpage tables، وتنتهي بذاكرة المضيف وصلاحيات root.

#المصادر