آسیبپذیری با شناسهی CVE-2024-4020 با شدت بالا و امتیاز CVSS 8.8 در روترهای Tenda FH1206 شناسایی شد. این روتر تحت تأثیر یک آسیبپذیری سرریز بافر مبتنی بر پشته است که در تابع fromAddressNat قرار دارد و در اثر سرریز بافر ناشی از دستکاری متغیر entrys رخ میدهد.
بافر، محل ذخیرهی اطلاعات به صورت موقت در نرمافزارها است که اطلاعات قبل از ارسال به مقصد در این محل ذخیره شده و پس از تغیرات cpu بر روی آن، به مقصد ارسال می شوند. سرریز بافر (Buffer overflow) یک آسیبپذیری نرمافزاری متداول است که بر اثر مقداردهی بیش از حد به بافر ایجاد میشود. زمانی که مقدار بیشتری از ظرفیت بافر به آن اعمال شود اطلاعات در فضای بیرون از بافر نوشته میشود و ممکن است اطلاعات قبلی از بین برود. این نقص زمانی به وجود میآید که برنامهنویس نوع ورودیهای نرمافزار را به درستی مشخص و کنترل نکرده باشد.
شکل 1: قسمتی از کد سفتافزار (firmware) Tenda
مطابق شکل مشاهده میشود که متغیر Var پارامتر entrys را از یک درخواست POST دریافت میکند و سپس آن را به متغیر v6 الصاق میکند. با این حال، از آنجایی که طول ورودی ارائه شده توسط کاربر برای پارامتر entrys نامعلوم است و توسط برنامه نیز بررسی نمیشود، عبارت sprintf(v6, "%s;%s", Var, v2) منجر به سرریز بافر میشود چراکه ورودیهای ارائهشده توسط کاربر میتوانند از اندازه اختصاص داده شده آرایه v6 (516 بایت) فراتر بروند؛ بنابراین این نقص امنیتی ایجاد میشود. مهاجم میتواند به راحتی یک حمله انکار سرویس یا اجرای کد از راه دور را با دادههای سرریزی که به دقت ساخته شده باشند انجام دهد.
حمله به سادگی از طریق اجرای دستورات زیر امکانپذیر است:
شکل 2: دستورات اجرای حمله
شکل 3: خروجی حمله
محصولات تحت تأثیر
نسخهی 1.2.0.8(8155) از سفت افزار (firmware) این روترها آسیبپذیر است.
توصیههای امنیتی
اقدام سریع نسبت به ارتقا نسخه توصیه میگردد.
منابع خبر:
[1] https://nvd.nist.gov/vuln/detail/CVE-2024-4020
[2] https://palm-vertebra-fe9.notion.site/fromAddressNat_entrys-b04d5356e5f04e30b37cb9037b94e1b2
- 31