وفقًا للأخبار الرسمية، اكتشف فريق بحث Fireblocks مؤخرًا ثغرة أمنية في تجريد حساب ERC-4337 في محفظة العقود الذكية UniPass. تسمح الثغرة الأمنية للمهاجم بإجراء عملية استحواذ كاملة على الحساب لمحفظة UniPass عن طريق استبدال نقطة الدخول الموثوقة للمحفظة لتنشيط وحدة تجريد الحساب.
بمجرد اكتمال عملية الاستيلاء على الحساب، يمكن للمهاجم التعامل مع المحفظة على أنها خاصة به واستنزاف جميع الأموال الموجودة فيها. مئات المستخدمين الذين لديهم وحدات ERC-4337 مفعلة في محافظهم معرضون لهذا الهجوم، والذي يمكن أن يقوم به أي شخص على blockchain.
تتكون الثغرة الأمنية من 3 مشكلات مختلفة لا يمكن استغلالها بشكل فردي، ولكن يمكن استغلالها معًا للحصول على حق الوصول على مستوى المالك إلى المحفظة، على النحو التالي:
1. المشكلة الأولى هي أن وظيفة validateSignature تُرجع "success=true" للتوقيع الفارغ؛
2. السؤال الثاني يتعلق بحساب مقدار وزن الدور المطلوب لاستدعاء الوظيفة المميزة للعقد نفسه؛
3. المشكلة الثالثة ليست في الواقع مشكلة في رمز العقد الذكي، ولكنها مشكلة أثناء تثبيت الوحدة. عند تمكين وحدة ERC-4337 باستخدام واجهة المحفظة، سيتم استدعاء addHook 4 مرات على السلسلة لإضافة وظائفها.
وفي غضون 24 ساعة من تأكيد استلام الكشف الأولي، أجرى فريق UniPass على الفور عملية ناجحة لإصلاح جميع المحافظ الضعيفة وإضافة استدعاء "addPermission" المفقود لتمكين وحدة ERC-4337 في المستقبل.