
یک آسیبپذیری امنیتی در Lightning Development Kit (LDK) شناسایی و برطرف شده است؛ کتابخانهای نرمافزاری که توسعهدهندگان از آن برای ساخت کیف پولها و اپلیکیشنهای پرداخت در شبکه لایتنینگ بیتکوین استفاده میکنند.
این نقص میتوانست به یک همتای مخرب در کانال پرداخت اجازه دهد با ارائه اطلاعات نادرست پس از اتصال مجدد، شرایطی ایجاد کند که اپلیکیشن آسیبپذیر بیتکوین ارسال کند، اما نتواند وجه متناظر را دریافت کند. توسعهدهندگان باید اصلاحیه امنیتی را در نسخهای از نرمافزار که واقعاً در اختیار کاربران قرار دارد، اعمال کنند.
مهاجم چگونه میتوانست بیتکوین را سرقت کند؟
شبکه لایتنینگ با استفاده از کانالهای پرداخت، امکان انجام تراکنشهای سریع و کمهزینه بیتکوین را خارج از ثبت مستقیم هر پرداخت در بلاکچین اصلی فراهم میکند. در این شبکه، گرههای واسطه میتوانند پرداخت را از فرستنده دریافت کرده و به مقصد بعدی منتقل کنند.
در سناریوی این آسیبپذیری، یک همتای مخرب ابتدا بهروزرسانی وضعیت کانال را تأیید میکرد؛ اما پس از قطع و برقراری مجدد ارتباط، بهدروغ ادعا میکرد که آن بهروزرسانی را دریافت نکرده است.
در نسخه آسیبپذیر LDK، این ادعای نادرست میتوانست باعث امضای یک تراکنش تعهدی متناقض شود؛ تراکنشی که وضعیت آن بهدرستی در سامانه نظارت بر کانال ثبت نشده بود. در نتیجه، مهاجم میتوانست تراکنش را روی بلاکچین بیتکوین تأیید کند و پرداخت را به گیرنده بعدی برساند، اما بعداً با منقضیشدن قرارداد پرداخت ورودی، وجه مربوط به آن را پس بگیرد.
به این ترتیب، گره واسطه بیتکوین را به مقصد بعدی پرداخت کرده بود، بدون آنکه بتواند مبلغ متناظر را از فرستنده اولیه بازیابی کند. این فرایند میتوانست به از دست رفتن دارایی اپلیکیشن یا سرویس واسطه منجر شود
کدام نسخهها این مشکل را برطرف کردهاند؟
تیم توسعه LDK دو نسخه امنیتی منتشر کرده است:
-
LDK نسخه 0.2.7: اصلاح آسیبپذیری اتصال مجدد و یک نقص امنیتی دیگر در پرداختهای LSPS2.
-
LDK نسخه 0.1.13: اصلاح آسیبپذیری اتصال مجدد برای شاخه قدیمیتر نرمافزار.
طبق گزارش منتشرشده در ۱۱ اکتبر ۲۰۲۶، این اصلاحیهها در نسخههایی با تاریخ انتشار اول اکتبر ارائه شده بودند. اصلاحیه اصلی اجازه میدهد پیامهای مربوط به بهروزرسانی تنها زمانی دوباره ارسال شوند که تأیید همتا همچنان دریافت نشده باشد. اگر همتا ادعا کند بهروزرسانی تأییدشدهای را دریافت نکرده است، کانال بهصورت اجباری بسته میشود تا از ادامه وضعیت پرخطر جلوگیری شود.
نقص دوم؛ احتمال پرداخت بیش از مبلغ دریافتی
نسخه 0.2.7 علاوه بر مشکل اتصال مجدد، نقص دیگری را در سازوکار LSPS2 برطرف میکند. این سازوکار به سرویسهای نقدینگی اجازه میدهد هنگام انجام پرداخت، برای کاربران کانال پرداخت ایجاد کنند.
در این نقص، دستکاری اطلاعات مربوط به مبلغ پرداخت میتوانست باعث شود سرویس نقدینگی کانالی باز کند و مقدار بیشتری بیتکوین نسبت به مبلغ دریافتی به مقصد منتقل کند. در چنین شرایطی، سرویس باید تفاوت مبلغ را از منابع مالی خودش تأمین میکرد.
این مشکل با آسیبپذیری اتصال مجدد متفاوت است و طبق گزارش، اصلاح آن در نسخه 0.2.7 ارائه شده؛ در حالی که یادداشتهای نسخه 0.1.13 اصلاح نقص اتصال مجدد را ذکر میکنند، نه مشکل LSPS2.
چرا نصب اصلاحیه اهمیت دارد؟
LDK یک کتابخانه است که داخل اپلیکیشنهای مختلف استفاده میشود. بنابراین، انتشار نسخه اصلاحشده بهتنهایی به معنای ایمنشدن تمام کیف پولها و سرویسهای مبتنی بر آن نیست؛ توسعهدهندگان باید کد اصلاحشده را وارد نسخه عملیاتی نرمافزار خود کنند.
همچنین، سرویسهایی که از LSPS2 استفاده میکنند باید قراردادهای پرداختی را که نسخه قبلی ایجاد کرده و هنوز در صف پردازش هستند بررسی کنند؛ زیرا ممکن است اطلاعات مبلغ این قراردادها پیش از نصب اصلاحیه اعتبارسنجی نشده باشد.
این آسیبپذیری مربوط به نرمافزارهای مبتنی بر LDK است و بهخودیخود به معنای هکشدن شبکه اصلی بیتکوین یا آسیبپذیری تمام کیف پولهای بیتکوین نیست. میزان خطر برای هر کاربر به نرمافزار مورد استفاده و نحوه پیادهسازی آن بستگی دارد.
جمعبندی
آسیبپذیری LDK نشان میدهد که حتی در شبکهای مانند لایتنینگ بیتکوین، مدیریت وضعیت کانالها و اعتبارسنجی پیامهای همتاها نقش مهمی در امنیت داراییها دارند. یک خطا در مدیریت اتصال مجدد میتواند در شرایط مشخص به پرداخت یکطرفه و از دست رفتن بیتکوین منجر شود.
مهمترین اقدام برای توسعهدهندگان، بهروزرسانی نرمافزارهای مبتنی بر LDK به نسخه اصلاحشده و بررسی پرداختهای در انتظار است. برای کاربران نیز توصیه میشود وضعیت بهروزرسانی کیف پول یا سرویس لایتنینگ خود را از طریق اطلاعیه رسمی همان پروژه بررسی کنند.

ورود / ثبت نام



ثبت نظر