اختراق Math.random(): خوارزمية محسّنة لعكس Xorshift128+

2025-09-04
اختراق Math.random(): خوارزمية محسّنة لعكس Xorshift128+

تستغل ثغرة الأمان الأخيرة CVE-2025-7783 حالة نادرة في نظام Node.js البيئي، مما يؤثر على التطبيقات التي تستخدم axios أو مكتبة request المُهملة. يتطلب الهجوم خمس مخرجات متتالية من Math.random() في JavaScript، مما يسمح بالتنبؤ بالمخرجات المستقبلية باستخدام مُحلل z3. تُقدّم هذه المدونة نهجًا أكثر كفاءة. يُظهر الكاتب خوارزمية من 226 عملية لعكس خوارزمية Xorshift128+ التي يستخدمها Math.random()، ولا تتطلب سوى نتيجتين كاملتين من 64 بت. من خلال تحليل Xorshift128+، فإن معرفة 26 بت الأقل أهمية من R1 تسمح بتحديد البتات المتبقية من L1 و R2. تناقش المشاركة أيضًا تكييف هذا مع دالة Math.random() الكاملة، مع تسليط الضوء على التحديات الناجمة عن اقتطاع البتات واقتراح حل باستخدام ثلاث مخرجات. أخيرًا، يشارك الكاتب تجربته في استخدام ChatGPT للبحث، مع ملاحظة إمكاناته مع الاعتراف بالقيود الحالية.

التطوير