strongSwan، یک بسته VPN مبتنی بر IPSec که در Linux، Android، FreeBSD و macOS استفاده میشود، دارای یک آسیبپذیری (CVE-2023-41913) است که میتواند برای اجرای کد از راه دور توسط مهاجم مورد سوء استفاده قرار گیرد. این آسیبپذیری به دلیل وجود اشکال در فرآیند charon-tkm با اجرای TKMv2 (Trusted Key Manager) پروتکل تبادل کلید (IKE) است که منجر به سرریز بافر در هنگام پردازش مقادیر طرح DH (Diffie-Hellman) با فرمت خاص میشود. این آسیبپذیری تنها در سیستمهایی که از نسخههای charon-tkm و strongSwan استفاده میکنند ظاهر میشود که از نسخه 5.3.0 شروع میشود. مشکل در به روز رسانی strongSwan 5.9.12 برطرف شده است. برای رفع آسیب پذیری در شاخه های شروع از 5.3.x، وصله هایی نیز آماده شده است.
این خطا به دلیل عدم بررسی اندازه مقادیر عمومی Diffie-Hellman قبل از کپی کردن آنها در یک بافر با اندازه ثابت در پشته ایجاد می شود. یک سرریز میتواند با ارسال یک پیام IKE_SA_INIT ساختهشده ویژه که بدون احراز هویت پردازش میشود، آغاز شود. در نسخههای قدیمیتر strongSwan، بررسی اندازه در کنترلکننده بار KE (Key Exchange) انجام میشد، اما در نسخه 5.3.0 تغییراتی اضافه شد که بررسی مقادیر عمومی را به سمت کنترلکننده پروتکل DH منتقل کرد. Diffie-Hellman) و توابع عمومی را برای ساده کردن بررسی صحت گروه های شناخته شده D.H. به دلیل یک نادیده گرفته شده، آنها فراموش کردند که توابع بررسی جدید را به فرآیند charon-tkm اضافه کنند، که به عنوان یک پروکسی بین فرآیند IKE و TKM (مدیر کلید مورد اعتماد) کار می کند، در نتیجه تابع memcpy () حاوی مقادیر بدون علامت بود. که اجازه می دهد تا 512 بایت در یک داده بافر 10000 بایتی نوشته شود.
منبع: opennet.ru