Libssh

LibSSH2 که یک کتابخانه محبوب client-side C است که پروتکل SSHv2 را اجرا می‌کند، آخرین نسخه نرم‌افزار خود را منتشر کرده است تا ۹ آسیب‌پذیری امنیتی را برطرف کند.

کتابخانه Libssh2 برای همه توزیع‌کنندگان اصلی سیستم‌عامل لینوکس، ازجمله Ubuntu، Red Hat و Debian در دسترس است و همچنین در برخی توزیع‌ها و نرم‌افزارها به‌عنوان یک کتابخانه پیش‌فرض همراه است.

بر اساس گزارش منتشرشده[۱] در روز ۱۸ مارس ۲۰۱۹، تمام آسیب‌پذیری‌های ذکرشده زیر که با انتشار نسخه libssh2 نسخه ۱٫۸٫۱ برطرف شده‌اند، منجر به مسائل مربوط به تخریب حافظه می‌شوند که می‌توانند در برخی شرایط منجر به اجرای کد دلخواه روی سیستم مشتری شوند.

در اینجا فهرستی از آسیب‌پذیری‌های امنیتی که در LibSSH2 وصله شده‌اند، آورده شده است:

  1. CVE-2019-3855: سرریز احتمالی integer در انتقال خواندن می‌تواند منجر به نوشتن خارج از محدوده شود. یک سرور موذی یا یک مهاجم از راه دور که سرور SSH را به خطر می‌اندازد می‌تواند یک بسته‌ی خاص دستکاری‌شده را ارسال کند که می‌تواند هنگامی‌که یک کاربر به سرور متصل می‌شود، منجر به اجرای یک کد موذی روی سیستم مشتری شود.

  2. CVE-2019-3856: سرریز احتمالی integer در مدیریت تعاملی صفحه‌کلید به نوشتن خارج از محدوده منجر می‌شود. یک سرور SSH موذی و یا به خطر افتاده می‌تواند با ارسال یک مقدار امضا نشده‌ی int در بیشترین تعداد درخواست‌های سریع صفحه‌کلید از سیستم مشتری بهره‌برداری کند.

  3. CVE-2019-3857: مسئله سرریز احتمالی integer منجر به تخصیص zero-byte و نوشتن خارج از محدوده می‌شود. یک سرور موذی می‌تواند یک بسته SSH_MSG_CHANNEL_REQUEST را با پیام سیگنال خروجی با طول حداکثر integer امضا نشده و حداکثر ارسال کند.

  4. CVE-2019-3858: امکان تخصیص zero-byte به خارج از محدوده. حمله به سرور می‌تواند یک بسته SFTP جزئی تولیدشده با یک مقدار صفر را برای طول payload ارسال کند که به مهاجمان اجازه می‌دهد تا منجر به حملات DoS شوند یا داده‌ها را در حافظه مشتری بخوانند.

  5. CVE-2019-3859: خواندن‌های خارج از محدوده با استفاده از payload های خاص ساخته‌شده به دلیل عدم بررسی استفاده از “_libssh2_packet_require” و “_libssh2_packet_requirev”. یک سرور می‌تواند یک بسته جزئی خاص و دستکاری‌شده را در پاسخ به دستورات مختلف مانند مبادله کلید sha1 و sha226، لیستauth  کاربر و پاسخ کلمه عبور auth کاربر ارسال کند و به مهاجمان اجازه دهد تا منجر به یک حمله Denial of Service یا خواندن اطلاعات در حافظه مشتری شوند.

  6. CVE-2019-3860: خواندن‌های خارج از محدوده با بسته‌های SFTP دستکاری‌شده‌ی خاص که همچنین منجر به Denial of Service یا خواندن داده‌ها در حملات حافظه مشتری می‌شوند.

  7. CVE-2019-3861: خواندن‌های خارج از محدوده با بسته‌های SSH به‌طور خاص دستکاری‌شده زمانی رخ می‌دهد که مقدار طول پدینگ بیشتر از طول بسته است و درنتیجه منجر به تجزیه بسته خراب‌شده می‌شوند.

  8. CVE-2019-3862: یک مشکل خواندن خارج از محدوده هنگامی رخ می‌دهد که سرور بسته‌های SSH_MSG_CHANNEL_REQUEST به‌طور خاص دستکاری‌شده را با یک پیام وضعیت خروج و بدون هیچ payload ای ارسال می‌کند که منجر به Denial of Service یا خواندن داده‌ها در حافظه مشتری می‌شود.

  9. CVE-2019-3863: سرریز integer در صفحه‌کلید تعاملی معتبر کاربر منجر به خواندن‌های خارج از محدوده می‌شود.

این آسیب‌پذیری‌های امنیتی روی تمامی نسخه‌های Libssh2 تا قبل از نسخه ۱٫۸٫۱ تأثیر می‌گذارند و خوشبختانه، در حال حاضر هیچ بهره‌برداری از این نقص‌ها در سطح اینترنت نشده است.

Chris Coulson of Canonical Ltd تمامی این ۹ آسیب‌پذیری امنیتی را کشف کرده و آن‌ها را به توسعه‌دهندگان LibSSH گزارش کرده است.

اگر از LibSSH استفاده می‌کنید، نسخه به‌روز شده LibSSH را در اسرع وقت نصب کنید.

این اولین بار نیست که این کتابخانه محبوب در معرض خطرات امنیتی قرار گرفته است. در اواخر سال گذشته، توسعه‌دهندگان آن یک آسیب‌پذیری شدید چهارساله را درLibssh  وصله کردند[۲] که مهاجمان غیرقابل‌اعتماد را قادر می‌ساخت تا کنترل در سطح مدیر نامحدود روی یک سرور آسیب‌پذیر بدون نیاز به کلمه عبور داشته باشند.

منابع

[۱] https://www.libssh2.org/changes.html

[۲] https://apa.aut.ac.ir/?p=5598

[۳] https://thehackernews.com/2019/03/libssh2-vulnerabilities.html