تیم امنیتی TrustSec بهتازگی یک آسیبپذیری در قراردادهای هوشمند Polymarket، یکی از بازارهای پیشبینی مبتنی بر بلاکچین، کشف کرده است که میتواند عملکرد این پلتفرم را مختل کند. این نقص امنیتی به اجرای نادرست تابع prepareCondition() در قرارداد UmaCtfAdapter مربوط میشود که به مهاجمان اجازه میدهد با جلو زدن (frontrunning) در ممپول، از ایجاد شرایط جدید شرطبندی جلوگیری کنند.
جزئیات آسیبپذیری
تیم TrustSec در توضیح روش کشف این آسیبپذیری اعلام کرد که این نقص را تنها با یک جستوجوی ساده (Ctrl + F) در کد قراردادهای هوشمند پیدا کردهاند. آنها بهدنبال فراخوانیهای prepareCondition() در UmaCtfAdapter بوده و متوجه شدهاند که این تابع بدون محدودیتهای لازم در دسترس عموم قرار دارد. این کشف نشان میدهد که برخی از مشکلات امنیتی اساسی در قراردادهای هوشمند میتوانند بهسادگی و بدون نیاز به تحلیلهای پیچیده شناسایی شوند، اما همچنان از سوی توسعهدهندگان نادیده گرفته میشوند.
Polymarket از چارچوب توکنهای شرطی (Conditional Token Framework – CTF) که در سال ۲۰۱۹ توسط Gnosis توسعه یافته، استفاده میکند. در این سیستم، کاربران در مرحلهی شرطبندی، وثیقه سپردهگذاری کرده و توکنهایی را که نشاندهندهی همهی گزینههای ممکن هستند، ضرب (مینت) میکنند. در مرحلهی تسویه، یک اوراکل نتیجه را تعیین کرده و پرداختها را بر اساس آن انجام میدهد.
بررسیهای تیم TrustSec نشان داده است که تابع prepareCondition()، که برای ایجاد یک شرط جدید در قرارداد CTF استفاده میشود، فاقد بررسیهای ایمنی لازم بوده و میتوان آن را از بیرون اجرا کرد. این موضوع به یک حملهگر اجازه میدهد تا با مشاهدهی تراکنشهای در حال انتظار در بلاکچین Polygon و اجرای زودهنگام این تابع، باعث عدم امکان ثبت شرایط جدید و مسدود شدن روند شرطبندی در Polymarket شود.
واکنش Polymarket و انتقادات TrustSec
تیم TrustSec این آسیبپذیری را مستقیماً به Polymarket گزارش داد. با این حال، این پلتفرم اعلام کرد که این نقص پیشتر از طریق پلتفرم امنیتی Immunefi گزارش شده و تصمیمی برای اصلاح آن ندارد. در نهایت، Polymarket تنها ۵۰۰ دلار پاداش حسن نیت پرداخت کرد، در حالی که تیم امنیتی انتظار یک جایزه پنجرقمی داشت.
TrustSec این اقدام را غیرحرفهای و ناکافی دانسته و معتقد است که Polymarket با عدم اصلاح این آسیبپذیری، امنیت کاربران را به خطر انداخته است. همچنین، این تیم تأکید کرده که عدم مستندسازی این نقص بهعنوان یک ریسک شناختهشده، رویکردی غیرمسئولانه از سوی Polymarket محسوب میشود.
جمعبندی
این رویداد بار دیگر نشان میدهد که امنیت در قراردادهای هوشمند و پلتفرمهای غیرمتمرکز همچنان یک چالش جدی است و نحوهی برخورد پروژهها با گزارشهای امنیتی میتواند تأثیر مستقیمی بر اعتماد جامعه داشته باشد. به گفتهی TrustSec، اصلاح این مشکل از طریق استراتژیهای سادهای مانند تغییر در نحوهی اجرای prepareCondition() امکانپذیر بوده و انتظار میرود Polymarket اقدامات لازم را برای جلوگیری از چنین حملاتی انجام دهد.
منبع: trust-security.xyz