در ۲۹ ژوئن ۲۰۲۶، آسیبپذیری بحرانی CVE-2026-55200 با امتیاز ۹.۲ در کتابخانه libssh2 کشف شد که معماری امنیتی SSH را وارونه میکند. این نقص به سرورهای مخرب اجازه میدهد کلاینتهای متصل را بدون نیاز به احراز هویت آلوده کنند. با انتشار عمومی کد PoC، میلیونها سیستم شامل cURL، ابزارهای DevOps و IoT در معرض خطر اجرای کد از راه دور (RCE) هستند.
تله SSH: وقتی سرورها کلاینتها را شکار میکنند
کشف آسیبپذیری کریتیکال در libssh2 که معماری امنیتی SSH را وارونه کرده است.
- 🎮CVSS 9.2/10- یکی از بحرانیترین باگهای سال
- 🎧PoC منتشر شد- کد اثبات مفهوم در دسترس عموم
- 🚀بدون احراز هویت- نیازی به کلمه عبور ندارد
- 🗡️هدف: کلاینت- سرورهای مخرب کلاینتها را آلوده میکنند
در تاریخ ۲۹ ژوئن ۲۰۲۶، جامعه امنیت سایبری با یک واقعیت تلخ روبرو شد. یکی از اساسیترین کتابخانههای SSH در جهان، libssh2، دارای آسیبپذیری کریتیکالی است که معماری امنیتی سنتی را کاملاً وارونه میکند. این بار نه سرورها، بلکه کلاینتها هدف هستند.
CVE-2026-55200 نام این باگ است. یک نقص Out-of-Bounds Write در تابع ssh2_transport_read() که با امتیاز CVSS v4.0 معادل ۹.۲ از ۱۰، به یکی از خطرناکترین آسیبپذیریهای سال تبدیل شده است. اما چیزی که این باگ را واقعاً ترسناک میکند، نه تنها شدت آن، بلکه جهت حمله آن است.
در یک نگاه
- آسیبپذیری کریتیکال در libssh2 با امتیاز CVSS 9.2 کشف شد
- سرورهای مخرب میتوانند کلاینتهای SSH را بدون احراز هویت آلوده کنند
- کد Proof-of-Concept به صورت عمومی منتشر شده است
- میلیونها سیستم شامل cURL، IoT و ابزارهای DevOps در معرض خطرند
معماری وارونه حمله
در مدلهای امنیتی سنتی، همیشه فرض بر این بوده که سرورها هدف حملات هستند و کلاینتها طرف آسیبپذیر. اما CVE-2026-55200 این فرض را به کلی زیر سوال میبرد.
این آسیبپذیری به یک سرور SSH مخرب یا کامپرومایز شده اجازه میدهد تا کلاینتی را که به آن متصل میشود، از طریق ارسال پکتهای SSH دستکاریشده آلوده کند. تحقیقات DailySecurity نشان میدهد که این حمله از طریق یک Integer Overflow در ۳۲ بیت صورت میگیرد.
وقتی سرور مقدار packet_length بیش از حد بزرگی را ارسال میکند، مقدار بررسی نشده باعث wraparound در اعداد صحیح میشود و در نتیجه یک تخصیص heap با اندازه کوچکتر از حد مورد نیاز ایجاد میکند. عملیاتهای نوشتن بعدی این تخصیص کوچک را overflow میکنند و منجر به خرابی حافظه و احتمال اجرای کد دلخواه میشوند.
Jargon Buster: Integer Overflow
بدون احراز هویت، بدون تعامل
شاید وحشتناکترین ویژگی این آسیبپذیری، سادگی بهرهبرداری از آن باشد. طبق گزارش Cyberkendra، این حمله نیاز به هیچ نوع احراز هویتی ندارد. هیچ username، هیچ password، هیچ کلید SSH.
تنها چیزی که مهاجم نیاز دارد این است که قربانی به سرور مخرب او متصل شود. این یعنی حتی اگر شما پیکربندیهای امنیتی سختگیرانهای داشته باشید، حتی اگر از کلیدهای SSH با طول ۴۰۹۶ بیت استفاده کنید، حتی اگر MFA فعال باشد - همین که دستور ssh را اجرا کنید، بازی تمام است.
تحقیقات OSG-HTC تأکید میکند که این آسیبپذیری در فرآیند SSH Transport رخ میدهد - یعنی حتی قبل از اینکه مرحله احراز هویت شروع شود. در واقع، مهاجم میتواند کلاینت را در همان ثانیههای اول handshake آلوده کند.
چرا این موضوع مهم است؟
سطح تهدید: هر چیزی که از libssh2 استفاده میکند
حالا سوال اینجاست: چه کسانی در معرض خطر هستند؟ پاسخ ساده است: تقریباً همه. libssh2 یک کتابخانه client-side است که به صورت silent در میلیونها سیستم در سراسر جهان تعبیه شده است.
طبق اطلاعات GitHub Advisory Database، این آسیبپذیری تمام نسخههای libssh2 تا و شامل ۱.۱۱.۱ را تحت تأثیر قرار میدهد. این یعنی سالها انباشته شدن کد آسیبپذیر در سیستمهای production در سراسر جهان.
Cyberkendra در گزارش خود اشاره کرد که این کتابخانه به صورت خاموش در نرمافزارهایی مثل cURL، ابزارهای backup و firmware دستگاههای IoT در سرتاسر جهان تعبیه شده است. بسیاری از مدیران سیستم حتی نمیدانند که سیستمهایشان از libssh2 استفاده میکند.
بخشهای در معرض خطر
ابزارهای انتقال داده مثل cURL که از libssh2 برای پروتکلهای SCP و SFTP استفاده میکنند، در خط مقدم این تهدید قرار دارند. سیستمهای CI/CD که هر روز هزاران بار با سرورهای remote ارتباط برقرار میکنند نیز در معرض خطر جدی هستند.
دستگاههای IoT که برای بهروزرسانی firmware از SSH استفاده میکنند، شاید آسیبپذیرترین هدف باشند. این دستگاهها معمولاً به ندرت آپدیت میشوند و سالها با همان نسخه آسیبپذیر کار میکنند.
PoC منتشر شد: از تئوری به تهدید واقعی
در ۲۹ ژوئن، اتفاق بدتری افتاد. کد Proof-of-Concept برای بهرهبرداری از این آسیبپذیری به صورت عمومی منتشر شد. این بدان معناست که دیگر نیازی به تیمهای تحقیقاتی پیشرفته ندارید - هر مهاجم با دانش متوسط میتواند این حمله را پیادهسازی کند.
SentinelOne در تحلیل خود اعلام کرد که کد PoC نشان میدهد چگونه یک سرور SSH مخرب میتواند با ارسال پکتهای SSH حاوی مقادیر packet_length بیش از حد بزرگ، حافظه heap را خراب کند و به اجرای کد از راه دور در کانتکست هر اپلیکیشنی که به کتابخانه آسیبپذیر لینک شده، دست یابد.
VulnCheck این آسیبپذیری را با امتیاز CVSS v4.0 معادل ۹.۲ رتبهبندی کرده است. برای مقایسه، این امتیاز در همان رده باگهایی مثل Heartbleed و Log4Shell قرار میگیرد.
مقایسه با آسیبپذیریهای تاریخی
| آسیبپذیری | CVSS | سال | جهت حمله |
|---|---|---|---|
| CVE-2026-55200 | 9.2 | 2026 | سرور → کلاینت |
| Log4Shell | 10.0 | 2021 | کلاینت → سرور |
| Heartbleed | 7.5 | 2014 | کلاینت → سرور |
| CVE-2019-13115 | 8.1 | 2019 | سرور → کلاینت |
Timeline: از کشف تا افشای عمومی
- ژوئن ۲۰۲۶: کشف آسیبپذیری توسط محققان امنیتی
- ۲۲ ژوئن: اعلام رسمی CVE-2026-55200 با امتیاز CVSS 9.2
- ۲۵ ژوئن: انتشار patch در commit 7acf3df
- ۲۹ ژوئن: انتشار عمومی کد Proof-of-Concept
سناریوهای حمله در دنیای واقعی
حالا بیایید ببینیم این آسیبپذیری در عمل چگونه میتواند استفاده شود. سناریوهای حمله متعددی وجود دارند که هرکدام خطرات خاص خود را دارند.
سناریو اول: Honeypot سرورهای SSH
مهاجم میتواند یک سرور SSH مخرب راهاندازی کند که به عنوان یک سرویس معتبر ظاهر شود. وقتی کاربران یا سیستمهای خودکار تلاش میکنند به این سرور متصل شوند، بلافاصله آلوده میشوند. این سناریو برای حمله به ابزارهای CI/CD که به صورت خودکار به سرورهای remote متصل میشوند، بسیار خطرناک است.
سناریو دوم: Compromise سرورهای معتبر
اگر مهاجم بتواند یک سرور SSH معتبر را compromise کند، میتواند آن را به یک سلاح برای آلوده کردن تمام کلاینتهایی که به آن متصل میشوند تبدیل کند. این حمله Supply Chain Attack کلاسیک است.
سناریو سوم: Man-in-the-Middle
در شبکههای غیرایمن، مهاجم میتواند خود را به عنوان سرور SSH جا بزند و ترافیک را intercept کند. حتی اگر کلاینت انتظار اتصال به سرور معتبر داشته باشد، مهاجم میتواند قبل از forward کردن اتصال، کلاینت را آلوده کند.
راهحلها و اقدامات فوری
خبر خوب این است که patch رسمی منتشر شده است. commit 7acf3df در مخزن GitHub رسمی libssh2 این آسیبپذیری را برطرف میکند. اما مشکل اینجاست که بهروزرسانی میلیونها سیستم آسیبپذیر کار راحتی نیست.
اقدامات فوری برای مدیران سیستم
اولین قدم، شناسایی تمام سیستمهایی است که از libssh2 استفاده میکنند. در سیستمهای لینوکس میتوانید با دستور ldd بررسی کنید که کدام برنامهها به این کتابخانه وابسته هستند.
سپس باید به سرعت به نسخه ۱.۱۱.۲ یا بالاتر آپدیت کنید. برای سیستمهایی که بهروزرسانی فوری امکانپذیر نیست، باید اتصالات SSH را به سرورهای trusted محدود کنید و از اتصال به سرورهای ناشناخته خودداری کنید.
برای محیطهای enterprise، پیشنهاد میشود یک proxy SSH راهاندازی کنید که تمام اتصالات را فیلتر و بازرسی کند. همچنین باید monitoring فعال روی تمام اتصالات SSH داشته باشید تا رفتارهای مشکوک را شناسایی کنید.
تحلیل فنی عمیق: آناتومی حمله
برای درک کامل خطر این آسیبپذیری، باید به جزئیات فنی آن نگاه کنیم. مشکل در تابع ssh2_transport_read() قرار دارد که مسئول خواندن و پردازش پکتهای SSH دریافتی است.
این تابع باید بررسی کند که اندازه پکت دریافتی در محدوده مجاز قرار دارد. libssh2 یک حد بالا برای اندازه پکتهای دریافتی تعریف کرده است، اما متأسفانه این محدودیت به درستی enforce نمیشود.
مراحل حمله گام به گام
مهاجم یک پکت SSH با فیلد packet_length بسیار بزرگ میسازد. وقتی کلاینت آسیبپذیر این پکت را دریافت میکند، تابع ssh2_transport_read() سعی میکند بر اساس این مقدار، حافظه تخصیص دهد.
اما اینجاست که مشکل رخ میدهد. مقدار packet_length یک عدد صحیح ۳۲ بیتی است. اگر مقدار بسیار بزرگی (نزدیک به ۴ گیگابایت) ارسال شود، محاسبات ریاضی برای تعیین اندازه واقعی buffer دچار overflow میشود.
نتیجه این است که به جای یک buffer بزرگ، یک buffer بسیار کوچک تخصیص داده میشود. سپس کد سعی میکند مقدار زیادی داده را در این buffer کوچک بنویسد و در نتیجه out-of-bounds write رخ میدهد.
تحلیل تکین: چرا این باگ این همه زمان کشف نشد؟
مقایسه با آسیبپذیریهای مشابه تاریخی
این اولین بار نیست که یک کتابخانه SSH دچار آسیبپذیری کریتیکال میشود. بیایید نگاهی به برخی موارد مشابه در تاریخ بیندازیم.
در سال ۲۰۱۹، libssh2 دو آسیبپذیری Integer Overflow دیگر داشت - CVE-2019-13115 و CVE-2019-17498. هر دو در مراحل اولیه اتصال SSH قابل trigger بودن و نیازی به احراز هویت نداشتند. GitHub Security Lab این موارد را کشف و گزارش کرد.
اما CVE-2026-55200 در مقایسه با موارد قبلی خطرناکتر است چون مستقیماً در لایه transport قرار دارد و PoC عمومی آن منتشر شده است.
درسهای آموخته شده
یک الگوی تکرارشونده در این آسیبپذیریها وجود دارد: همگی مربوط به validation نادرست ورودی در مراحل اولیه اتصال هستند. این نشان میدهد که کتابخانههای SSH باید توجه ویژهای به بررسی دقیق تمام ورودیهای دریافتی در مرحله handshake داشته باشند.
تأثیر بر ecosystem وسیعتر
این آسیبپذیری تنها یک باگ نیست - بلکه یک هشدار برای کل صنعت است. بسیاری از پروژههای open-source به libssh2 وابسته هستند و حالا همگی باید فوراً آپدیت شوند.
cURL، یکی از پرکاربردترین ابزارهای انتقال داده در جهان، از libssh2 برای پروتکلهای SFTP و SCP استفاده میکند. تیم توسعه cURL بلافاصله هشدار داد که تمام کاربران باید به نسخههای جدید که libssh2 را آپدیت کردهاند، مهاجرت کنند.
GitLab، GitHub Actions و سایر پلتفرمهای CI/CD نیز باید سیستمهای خود را بررسی کنند. هر سیستمی که به صورت خودکار با سرورهای remote از طریق SSH ارتباط برقرار میکند، در معرض خطر است.
نگاه به آینده: چه انتظاری داریم؟
انتشار عمومی PoC معمولاً به معنای افزایش سریع حملات در هفتههای آینده است. محققان امنیتی انتظار دارند که گروههای مخرب بزودی شروع به scan کردن اینترنت برای یافتن سیستمهای آسیبپذیر کنند.
از طرف دیگر، این رویداد احتمالاً باعث میشود که پروژههای SSH دیگر نیز کدهای خود را با دقت بیشتری بررسی کنند. OpenSSH و libssh احتمالاً auditing امنیتی جامعی انجام خواهند داد.
همچنین احتمال دارد که سازمانهای امنیتی مثل CISA و NIST دستورالعملهای جدیدی برای secure coding در کتابخانههای cryptographic منتشر کنند. این آسیبپذیری نشان داد که validation ورودی در لایههای پایین پروتکل بسیار حیاتی است.
توصیههای امنیتی برای کاربران ایرانی
کاربران ایرانی به دلیل محدودیتهای شبکه و تحریمها، چالشهای خاصی در بهروزرسانی نرمافزارها دارند. اما در این مورد، بهروزرسانی فوری بسیار حیاتی است.
اگر دسترسی مستقیم به مخازن رسمی ندارید، میتوانید از mirror های داخلی معتبر دانشگاهها استفاده کنید. همچنین پیشنهاد میشود checksum فایلهای دانلودی را با منابع رسمی مقایسه کنید تا از اصالت آنها مطمئن شوید.
برای توسعهدهندگان ایرانی که از libssh2 در پروژههای خود استفاده میکنند، توصیه اکید میشود dependency های خود را فوراً به نسخه ۱.۱۱.۲ یا بالاتر آپدیت کنید. اگر نمیتوانید فوراً آپدیت کنید، حداقل اتصالات SSH را به سرورهای whitelist شده محدود کنید.
چکلیست امنیتی فوری
ابتدا تمام سیستمهایی که از SSH استفاده میکنند را شناسایی کنید. سپس نسخه libssh2 آنها را بررسی کنید. اگر نسخه ۱.۱۱.۱ یا پایینتر است، آسیبپذیر هستید.
برای سرورهای production که نمیتوانید فوراً آنها را آپدیت کنید، یک راهحل موقت این است که تمام اتصالات SSH خروجی را از طریق یک proxy که نسخه بهروز دارد، route کنید.
همچنین monitoring دقیق روی تمام اتصالات SSH راهاندازی کنید. هرگونه تلاش برای اتصال به IP های ناشناخته یا رفتار غیرعادی در handshake باید فوراً alert تولید کند.
نتیجهگیری نهایی
CVE-2026-55200 یک یادآوری تلخ است که امنیت سایبری یک نبرد مداوم است. این آسیبپذیری نشان داد که حتی پروتکلهای mature و widely-used مثل SSH میتوانند نقاط ضعف خطرناکی داشته باشند.
جالب اینجاست که این حمله معماری امنیتی سنتی را وارونه میکند. ما همیشه یاد گرفتهایم که سرورها را محافظت کنیم، اما این بار کلاینتها هدف هستند. این shift در paradigm امنیتی باید ما را وادار کند تا مدلهای امنیتی خود را بازنگری کنیم.
انتشار عمومی PoC این تهدید را از یک ریسک نظری به یک خطر واقعی و فوری تبدیل کرده است. هر سازمانی که از SSH استفاده میکند - که عملاً یعنی تقریباً همه - باید فوراً اقدام کند.
برای کاربران ایرانی، چالشهای اضافی مربوط به دسترسی و بهروزرسانی وجود دارد، اما این نباید بهانهای برای تأخیر باشد. امنیت سایبری یک انتخاب نیست، یک ضرورت است.
سوالات متداول
چگونه بفهمم سیستمم آسیبپذیر است؟
در لینوکس با دستور <code>ldconfig -p | grep libssh2</code> نسخه نصب شده را بررسی کنید. اگر نسخه ۱.۱۱.۱ یا پایینتر باشد، آسیبپذیر هستید. همچنین میتوانید با <code>ldd /usr/bin/curl</code> ببینید که cURL شما به libssh2 وابسته است یا خیر.
آیا استفاده از VPN یا proxy مرا محافظت میکند؟
خیر. این آسیبپذیری در لایه application است نه network. حتی اگر از VPN استفاده کنید، اگر به یک سرور مخرب متصل شوید، آسیبپذیر هستید. تنها راه محافظت، آپدیت به نسخه پچ شده است.
آیا تنها اتصالات manual در معرض خطر هستند؟
نه، هر اتصال SSH خودکار نیز در معرض خطر است. ابزارهای CI/CD، سیستمهای backup خودکار، و اسکریپتهای cron که از SSH استفاده میکنند همگی آسیبپذیرند. در واقع اتصالات خودکار خطرناکترند چون بدون نظارت انسان اتفاق میافتند.
چرا این باگ این همه زمان کشف نشد؟
Integer Overflow معمولاً نیاز به شرایط خاصی برای trigger شدن دارد. این باگ احتمالاً سالها در کد وجود داشت اما کسی تستهای لازم برای کشف آن را انجام نداده بود. تنها با fuzzing پیشرفته و تحلیل استاتیک عمیق این نوع باگها کشف میشوند.
آیا OpenSSH هم آسیبپذیر است؟
خیر. OpenSSH از libssh2 استفاده نمیکند و implementation خاص خود را دارد. این آسیبپذیری فقط به کتابخانه libssh2 مربوط میشود. اما کلاینتهایی که از OpenSSH استفاده میکنند اگر libssh2 را برای سایر منظورها داشته باشند، باز هم باید بررسی شوند.
در صورت آلوده شدن چه باید بکنم؟
فوراً سیستم را از شبکه جدا کنید. تمام کلیدهای SSH و credentials ذخیره شده را revoke کنید. یک forensic analysis کامل انجام دهید تا ببینید چه دیتایی compromise شده. سپس سیستم را از backup تمیز بازسازی کنید و با نسخه پچ شده دوباره راهاندازی کنید.
منابع و مراجع
- The Hacker News - Public PoC Released for Critical libssh2 CVE-2026-55200
- GitHub Advisory Database - CVE-2026-55200
- SentinelOne - libssh2 Remote Code Execution Vulnerability
- Daily Security Review - Public PoC Drops for Critical libssh2 Flaw
- CyberKendra - Critical libssh2 Flaw Enables Zero-Auth RCE
- Cybernews - Critical security flaw found in popular SSH library
- National Vulnerability Database - CVE-2026-55200
- OSG-HTC - Critical libssh2 RCE Vulnerability
گالری تصاویر تکمیلی: 🚨 تله SSH: آسیبپذیری بحرانی CVE-2026-55200 در کتابخانه libssh2










