اكتشف Beosin الثغرة الأمنية CVE-2023-33252 في مكتبة التحقق من Circom. Circom عبارة عن مترجم دوائر إثبات عدم المعرفة تم تطويره استنادًا إلى Rust. كما طور الفريق مكتبة SnarkJS لتنفيذ نظام الإثبات ، بما في ذلك: الإعدادات الموثوقة ، المعرفة الصفرية إنشاء الإثبات والتحقق ، وما إلى ذلك ، يدعم خوارزميات Groth16 و PLONK و FFLONK. ردًا على هذه الثغرة الأمنية ، ذكّر فريق أمان Beosin طرف مشروع zk بأنه عند إجراء التحقق من الإثبات ، يجب إيلاء الاعتبار الكامل للمخاطر الأمنية التي تسببها خصائص لغة الكود في التنفيذ الفعلي لتصميم الخوارزمية. في الوقت الحالي ، قدمت Beosin الثغرة الأمنية إلى منصة الكشف عن الثغرات الأمنية الخاصة بمكافحة التطرف العنيف (نقاط الضعف والتعرض الشائعة) وحصلت على الموافقة. في السابق ، اكتشف باحثو الأمن في Beosin ثغرة خطيرة في SnarkJS 0.6.11 والإصدارات السابقة من المكتبة. عندما لم تقم المكتبة بإجراء فحص كامل للشرعية على المعلمات عند التحقق من الإثبات ، يمكن للمهاجم تزوير أدلة متعددة. من خلال التحقق ، يتحقق هجوم الإنفاق المزدوج. بعد أن ذكر Beosin هذه الثغرة الأمنية ، اتصل على الفور بفريق المشروع وساعد في إصلاحها. حاليًا ، تم إصلاح الثغرة الأمنية. يذكر Beosin جميع مشاريع zk باستخدام مكتبة SnarkJS لتحديث SnarkJS إلى الإصدار 0.7.0 لضمان الأمان.