یک آسیبپذیری امنیتی با شناسه CVE-2026-16671 در توابع مدیریت بوت شناسایی شده است که به دلیل مدیریت نادرست حافظه در هنگام اعتبارسنجی تصاویر (Images) رخ میدهد.
جزئیات فنی نقص امنیتی
این مشکل در تابع split_image_check() واقع در مسیر boot/bootutil/src/loader.c ریشه دارد. در این بخش، یک بافر با اندازه ثابت 32 بایت از نوع uint8_t loader_hash[32] تعریف شده است که به عنوان پارامتر خروجی (out-parameter) به تابع bootutil_img_validate() ارسال میشود.
مشکل زمانی بروز میکند که تابع bootutil_img_validate() اقدام به کپی کردن دادهها در بافر out_hash میکند. مقدار دادههای کپی شده توسط دستور memcpy بر اساس ثابت IMAGE_HASH_SIZE تعیین میشود. با توجه به تنظیمات زمان کامپایل (compile-time)، این مقدار میتواند متفاوت باشد:
- در حالت MCUBOOT_SHA512، مقدار
IMAGE_HASH_SIZEبرابر با 64 بایت است. - در حالت MCUBOOT_SIGN_EC384/SHA-384، این مقدار برابر با 48 بایت است.
از آنجایی که بافر مقصد تنها 32 بایت (مناسب برای SHA-256) فضای تعریف شده دارد، در صورت استفاده از الگوریتمهای SHA-384 یا SHA-512، مقدار بیشتری از داده نسبت به ظرفیت بافر کپی شده و منجر به سرریز بافر (Buffer Overflow) میشود.
این نقص امنیتی میتواند منجر به تخریب حافظه (Memory Corruption) در مراحل اولیه بوت سیستم شود، هرچند شدت آن در سطح Low ارزیابی شده است.