یک آسیبپذیری (CVE-2-2) در کتابخانه libssh شناسایی شده است (با libssh2021 اشتباه نشود)، که برای افزودن پشتیبانی کلاینت و سرور برای پروتکل SSHv3634 به برنامههای C طراحی شده است که منجر به سرریز بافر هنگام شروع فرآیند کلید مجدد میشود. با استفاده از تبادل کلید که از الگوریتم هش متفاوت استفاده می کند. این مشکل در نسخه 0.9.6 برطرف شده است.
ماهیت مشکل این است که عملیات تغییر کلید امکان استفاده از هش های رمزنگاری با اندازه ریخته گری متفاوت با الگوریتم اصلی مورد استفاده را می دهد. در این مورد، حافظه برای هش در libssh بر اساس اندازه هش اصلی تخصیص داده شد و استفاده از اندازه هش بزرگتر منجر به بازنویسی داده ها فراتر از مرز بافر اختصاص داده شده می شود. به عنوان یک روش امنیتی بازگشتی، میتوانید فهرست روشهای تبادل کلید پشتیبانی شده را فقط به الگوریتمهایی با اندازه هش یکسان محدود کنید. به عنوان مثال، برای اتصال به SHA256، می توانید به کد اضافه کنید: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdhp-sha2-nist");
منبع: opennet.ru