CVE-2026-45137 in anchor
الملخص
بحسب VulDB • 28/05/2026
Anchor هو إطار عمل يوفر عدة أدوات تطوير مريحة لكتابة برامج Solana. من الإصدار 1.0.0 وحتى قبل الإصدار 1.0.2، يؤدي خطأ منطقي إلى قبول برامج Anchor لأي معرّف برنامج (program id) عند طلب معرّف برنامج النظام، مما يسبب افتراضات خاطئة تؤدي إلى إمكانية تنفيذ استدعاءات برمجية عبر الحدود (CPI) بشكل تعسفي في البرامج التي تستدعي تعليمات برنامج النظام. في تنفيذ TryFrom> لـ Program، يتم مقارنة معرّف T مع Pubkey::default() للتحقق مما إذا كان Anchor يجب أن يسمح بأي حساب قابل للتنفيذ، أو حساباً محدداً، لأنه عند عدم توفير T، فإن T يأخذ القيمة الافتراضية ()، والتي تطبق Id::id() بإرجاع Pubkey::default(). هذا يؤدي إلى أن T = () و T = System (الذي له Pubkey::default() كمعرّف) يتصرفان بنفس الطريقة، وكلاهما يسمح بأي حساب قابل للتنفيذ. تفترض البرامج المبنية باستخدام Anchor أن وقت تشغيل Anchor يتحقق من أن البرامج الممررة من نوع Program هي بالفعل برنامج النظام. هذا الافتراض الخاطئ يمكن أن يؤدي إلى تنفيذ CPI بشكل تعسفي أو تجاوز المدفوعات عندما تحاول البرامج إجراء استدعاءات CPI إلى برنامج النظام باستخدام برنامج النظام الممرر، بسبب حقيقة أن المهاجم يمكنه تمرير أي برنامج بدلاً من برنامج النظام. تم إصلاح هذا الثغرة في الإصدار 1.0.2.
If you want to get best quality of vulnerability data, you may have to visit VulDB.