CVE-2022-29219 in Lodestar
الملخص
بحسب VulDB • 06/06/2026
Lodestar هو تنفيذ لمواصفات إجماع Ethereum باستخدام لغة TypeScript. قبل الإصدار 0.36.0، كان من الممكن حدوث انقسام في الإجماع (consensus split) عند تضمين كائنات `AttesterSlashing` أو `ProposerSlashing` مُصاغة بشكل ضار على السلسلة (on-chain). ونظراً لأن المطورين يمثلون قيم `uint64` كأرقام جافاسكريبت أصلية (`number`s)، فإن هناك مشكلة تنشأ عند تضمين تلك المتغيرات ذات القيم الكبيرة لـ `uint64` (أكبر من 2^53) على السلسلة. في هذه الحالات، قد يعتبر Lodestar كائنات `AttesterSlashing` أو `ProposerSlashing` صالحة غير صالحة بسبب أخطاء التقريب الناتجة عن قيم الأرقام الكبيرة (`number`). يؤدي هذا إلى انقسام في الإجماع، حيث تنفصل عقد Lodestar عن الشبكة الرئيسية. وبالمثل، قد يعتبر Lodestar كائنات `ProposerSlashing` غير الصالحة على أنها صالحة، وبالتالي تضمينها في الكتل المقترحة التي ستعتبرها الشبكة غير صالحة. يحتوي الإصدار 0.36.0 على إصلاح لهذه المشكلة. كحل بديل (workaround)، استخدم `BigInt` لتمثيل قيم `Slot` و `Epoch` في كائنات `AttesterSlashing` و `ProposerSlashing`. نظرًا لأن استخدام `BigInt` بطيء جداً لاستخدامه في جميع حالات `Slot` و `Epoch`، يمكن للمرء استخدامه بحذر فقط حيث يكون ذلك ضرورياً للإجماع.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.