راهنمای استراتژیک مهار آسیبپذیری بحرانی SSHole با شناسه CVE-2026-123158 در سرویس OpenSSH؛ رخنهای با امتیاز ۸.۱ که روی سیستمهای لینوکسی مبتنی بر کتابخانه musl libc (مانند آلپاین و OpenWrt) فعال است. این باگ به مهاجمان اجازه میدهد با ارسال پسوردی با طول بیش از ۲۵۶ بایت، خطای تابع crypt را فعال کرده و به دلیل تطابق رشته ستاره (*) با هش حسابهای قفلشده در فایل shadow، بدون رمزعبور به دسترسی روت دست یابند.
تکین گاید // راهنمای جامع مهار آسیبپذیری بحرانی SSHole در سرورهای لینوکس
افشای آسیبپذیری امنیتی فوقالعاده خطرناک در پروتکل پرکاربرد OpenSSH با شناسه CVE-2026-123158 و نام مستعار SSHole، موجی از هراس را در میان مدیران سرور، معماران امنیت ابری و مهندسان دِوآپس در سراسر جهان پدید آورده است.
این رخنه امنیتی که نخستین بار توسط پژوهشگر امنیتی اوزگون کولتکین (Özgün Kültekin) شناسایی و ثبت شد، به هکرها و مهاجمان غیرمجاز اجازه میدهد بدون در دست داشتن هیچ رمزعبوری، سد احراز هویت سرورهای لینوکسی مبتنی بر کتابخانه سبک musl libc را درهم شکسته و مستقیماً با دسترسی روت (Root) یا سایر حسابهای سیستمی قفلشده وارد شل سیستمعامل شوند.
گزارشهای فوری منتشرشده توسط مؤسسات رصد ترافیک سایبری نشان میدهد که گروههای تهاجمی تنها چند ساعت پس از انتشار عمومی جزئیات فنی، کارزارهای اسکن سراسری در کل فضای آدرس IPv4 را به راه انداخته و با موفقیت توانستهاند بر روی سرورهای تله (Honeypot) در چندین کشور دسترسی مدیریتی کامل کسب کنند. این رخداد بار دیگر خطرات ناشی از برهمکنش پیچیده میان لایههای کتابخانهای سیستمعامل و سرویسهای پایه را اثبات میکند؛ رخدادی همراستا با زلزلههای امنیتی اخیری که در پروندههای کالبدشکافی نفوذ به چینآنالیسیس و همچنین کالبدشکافی آسیبپذیری ThisBash در کلاود دسکتاپ پیرامون سقوط دیوارهای اعتماد بررسی کردیم.
اشراف اطلاعاتی // ۶ بردار استراتژیک در آسیبپذیری SSHole
اهمیت بحران SSHole فراتر از یک باگ نرمافزاری معمولی است؛ این رخنه مستقیماً با مفهومی درگیر است که میلیونها مهندس زیرساخت در دهه گذشته آن را به عنوان یک استاندارد نفوذناپذیر پذیرفته بودند: فرض بر این بود که اگر یک حساب کاربری فاقد رمزعبور باشد و تنها ورود با کلید عمومی (SSH Public Key) برای آن تعریف شده باشد، سیستم در برابر هرگونه حمله پسوردمحور کاملاً مصون است. باگ SSHole این فرض بنیادین را به طور کامل درهم شکست.
جعبه تحلیلی زیر چرایی دگرگونسازی پارادایم امنیت سرور توسط این آسیبپذیری را خلاصه میکند:
چرا آسیبپذیری SSHole معادلات دفاع سرورهای لینوکس را دگرگون کرد؟
دیدگاه تخصصی تکین: آسیبپذیری SSHole یک تراژدی کلاسیک مهندسی نرمافزار است؛ جایی که پچ رفع یک نشتی اطلاعاتی در سال ۲۰۱۶ با باگ کتابخانه سبک musl ترکیب شده و پس از سالها به عنوان یکی از تمیزترین و قطعیترین روشهای دور زدن احراز هویت در دنیای لینوکس منفجر میشود.
پیش از ورود به جزئیات فنی، تفکیک شایعات اغراقآمیز رسانهای از واقعیتهای مهندسی این رخنه برای جلوگیری از هدررفت منابع تیمهای فنی حیاتی است:
تطبیق فنی // شایعه در برابر واقعیت مهندسی رخنه SSHole
| شایعات رایج و گزارشهای گمراهکننده | واقعیت فنی اثباتشده و دامنه آسیبپذیری |
|---|---|
| تمام سرورهای اوبونتو، دبیان و رد هت لینوکس آسیبپذیرند | خیر؛ سیستمهای مبتنی بر کتابخانه glibc یا سرورهایی که ماژول PAM را فعال دارند به هیچ عنوان آسیبپذیر نیستند. |
| مهاجم میتواند حسابهایی با پسورد قوی را هک کند | خیر؛ رخنه فقط بر روی حسابهایی عمل میکند که فاقد پسورد معتبر بوده و در فایل shadow کاراکتر ستاره (*) دارند. |
| بستن پورت ۲۲ یا تعویض پورت سرور آسیبپذیری را رفع میکند | خیر؛ تعویض پورت تنها مانع اسکنرهای خودکار مبتدی میشود؛ راهکار قطعی بهروزرسانی بسته یا اصلاح تنظیمات sshd است. |
| کانتینرهای بدون دسترسی پورت اینترنتی کاملاً ایمن هستند | خیر؛ در صورت نفوذ اولیه به شبکه داخلی یا کلاستر کوبرنتیز، مهاجم میتواند از SSHole برای حرکت عرضی (Lateral Movement) استفاده کند. |
دیدگاه یکی از برجستهترین پژوهشگران امنیت سیستمهای متنباز عمق ظرافت این آسیبپذیری را بازگو میکند:
اکنون که چشمانداز کلی تهدید روشن شد، وارد تحلیل عمیق محورهای هفتگانه این راهنمای جامع میشویم.
محور ۰۱: ماهیت بحران SSHole؛ زلزله در قلب معتمدترین پروتکل ارتباطی سرورهای لینوکس
پروتکل ارتباطی SSH (Secure Shell) برای بیش از دو دهه به عنوان دژ تسخیرناپذیر مدیریت از راه دور سرورهای جهان شناخته شده است. از کوچکترین بردهای تعبیهشده رزبریپای گرفته تا اَبَرکامپیوترهای مراکز داده ابری آمازون و گوگل، مدیران سیستم همواره با اطمینان کامل به امنیت پیادهسازی OpenSSH تکیه کردهاند. از همین رو، وقوع رخنهای در لایه احراز هویت پایهای این نرمافزار، ضربهای مهلک به اعتماد جمعی صنعت آیتی وارد میسازد.
این اعتماد مطلق باعث شد تا بسیاری از تیمهای مهندسی، سرویس SSH را بدون لایههای محدودکننده جانبی نظیر فایروالهای سختافزاری یا بسترهای VPN مستقیماً بر روی اینترنت عمومی قرار دهند. در چنین شرایطی، هنگامی که یک آسیبپذیری احراز هویت با امتیاز بحرانی ۸.۱ در مقیاس CVSS کشف میشود، کل زیرساخت شبکه در کسری از ثانیه در معرض نفوذ و تسخیر مستقیم قرار میگیرد.
بحران زمانی آغاز شد که کاشف آسیبپذیری متوجه یک تناقض منطقی در رفتار تابع هش کردن رمزعبور در ترکیب با کتابخانه کمحجم musl شد. این کتابخانه به دلیل حجم بسیار ناچیز و مصرف حافظه بهینه، به انتخاب اول توزیع آلپاین لینوکس (Alpine Linux) و پروژههای کانتینری تبدیل شده است؛ پلتفرمهایی که زیربنای بخش اعظمی از مایکروسرویسهای جهان را تشکیل میدهند.
مدیران سیستم در اکوسیستمهای مبتنی بر کانتینر همواره برای کاهش سطح حمله و کوچکسازی ایمیجهای داکر به آلپاین پناه میبرند؛ غافل از اینکه بهینهسازیهای سختگیرانه در کتابخانههای سیستمی سبک، گاهی رفتارهای پیشبینینشدهای ایجاد میکند که میتواند پایههای امنیتی کل سیستم را فروبریزد.
هنگامی که یک مهاجم اقدام به اتصال به پورت ۲۲ سروری آسیبپذیر میکند، فرآیند احراز هویت نه بر پایه شکستن محاسبات رمزنگاری، بلکه بر پایه یک خطای همپوشانی منطقی فریب میخورد. این سناریو از آن جهت هراسانگیز است که مهاجم نیازی به اکسپلویتهای پیچیده حافظه (Buffer Overflow) یا تکنیکهای ROP ندارد؛ یک خط دستور ساده در شل یا اسکریپت پایتون تکخطی برای تصاحب شل روت سیستم کفایت میکند.
محور ۰۲: آناتومی ریاضی و کد آسیبپذیری؛ چگونه تابع crypt در کتابخانه musl با یک کاراکتر ستاره (*) فاجعه آفرید؟
برای درک مهندسی این فاجعه، باید به کالبدشکافی کدهای زبان C در دو پروژه OpenSSH و musl libc بپردازیم. ماجرا به پچ امنیتی سال ۲۰۱۶ در نسخه OpenSSH 7.3 بازمیگردد. در آن زمان، پژوهشگران متوجه شدند که اگر کاربری روی سرور وجود نداشته باشد، درخواست ورود سریعتر از زمانی که کاربر وجود دارد رد میشود؛ این تفاوت زمانی ناچیز به مهاجمان اجازه میداد نام کاربریهای معتبر سیستم را لیست کنند (Username Enumeration).
توسعهدهندگان OpenSSH برای رفع این مشکل، در فایل `auth-passwd.c` منطقی تعبیه کردند که حتی اگر حسابی وجود نداشت یا حسابی در فایل `/etc/shadow` قفل شده بود، سیستم همچنان یک بار تابع `crypt()` را با یک پسورد و هش ساختگی فراخوانی کند تا زمان پردازش در هر دو حالت کاملاً یکسان شود. اما در پیادهسازی این منطق، بررسی صحت خروجی تابع هش به یک متغیر خطرناک وابسته شد.
در سیستمعاملهای استاندارد مبتنی بر کتابخانه glibc، اگر رمزعبوری بیش از حد طولانی به تابع `crypt()` داده شود، تابع خروجی هش طبیعی تولید میکند یا مقداری نامعتبر برمیگرداند. اما در کتابخانه musl libc، توسعهدهندگان محدودیت سختگیرانه ۲۵۶ بایت را برای طول رمزعبور وضع کرده بودند. در کدهای منبع musl مشخص شده است که اگر طول ورودی از ۲۵۶ کاراکتر فراتر رود، تابع با شکست مواجه شده و طبق یک استاندارد قدیمی، تنها یک کاراکتر ستاره `"*"` برمیگرداند!
حال قطعه سوم پازل وارد میدان میشود: در دنیای یونیکس و لینوکس، زمانی که یک کاربر جدید ایجاد میشود که قرار است فقط با کلید SSH وارد شود یا یک حساب سیستمی نظیر `root`، `bin` یا `daemon` در سیستم وجود دارد که ورود پسوردی آن غیرفعال است، سیستمعامل در ستون هش رمزعبور فایل `/etc/shadow` به جای هش واقعی، دقیقاً یک کاراکتر ستاره `"*"` قرار میدهد تا نشان دهد هیچ رمزی برای این کاربر تنظیم نشده است!
هنگامی که مهاجم برای حساب روت یک پسورد ۲۵۷ کاراکتری ارسال میکند، تابع `crypt` کتابخانه musl خطا داده و کاراکتر `"*"` برمیگرداند. سپس سرور OpenSSH هش ساختگی برگشتی را با رشته ذخیرهشده در فایل `/etc/shadow` که آن هم `"*"` است مقایسه میکند. نتیجه مقایسه دو رشته ستاره با یکدیگر «برابر» است! در نتیجه، موتور احراز هویت با خشنودی اعلام میکند که رمزعبور واردشده صحیح است و مهاجم را با بالاترین سطح دسترسی وارد سیستم میکند!
این فاجعه منطقی نشان میدهد که چگونه یک چک امنیتی به ظاهر ساده در زبان C که با استفاده از تابع مقایسه رشتهای `strcmp` انجام میگیرد، در صورت عدم اعتبارسنجی مقادیر استثنایی و کدهای خطای توابع زیربنایی، میتواند پیامدی مرگبار داشته باشد. طراحان OpenSSH فرض کرده بودند که تابع crypt همواره یا یک رشته هش معتبر با پیشوندهای استاندارد تولید میکند یا در صورت بروز خطای بحرانی، مقدار NULL بازمیگرداند؛ اما استاندارد مستقل musl با بازگرداندن علامت ستاره، کل این زنجیره استدلال را دگرگون ساخت.
جدول مقایسهای زیر تفاوت رفتار این آسیبپذیری را در کتابخانهها و توزیعهای مختلف سیستمعامل نشان میدهد:
ماتریس تحلیل رفتار توابع احراز هویت در کتابخانههای سیستمی مختلف لینوکس
| پارامتر و شاخص ارزیابی | کتابخانه استاندارد گنو (GNU glibc) | کتابخانه سبک ماسل (musl libc) |
|---|---|---|
| حداکثر طول مجاز پسورد ورودی | پشتیبانی از رشتههای طولانی بدون محدودیت سخت | محدودیت سختگیرانه ۲۵۶ بایت در تابع crypt |
| خروجی تابع در زمان شکست طول پسورد | تولید هش معتبر یا رشته خروجی خطای تصادفی | بازگرداندن دقیق و قطعی یک کاراکتر ستاره (*) |
| نتیجه مقایسه با حساب فاقد پسورد (shadow=*) | عدم تطابق رشته هش و رد قطعی درخواست ورود | تطابق صددرصدی ستاره با ستاره و دور زدن احراز هویت! |
| سیستمهای عامل و توزیعهای متأثر | Ubuntu, Debian, RHEL, CentOS (کاملاً ایمن) | Alpine Linux, OpenWrt, Buildroot (بسیار آسیبپذیر) |
| تأثیر فعال بودن ماژولهای احراز هویت PAM | احراز هویت مستقل از منطق داخلی OpenSSH | در حالت غیرفعال بودن PAM (پیشفرض آلپاین) رخنه فعال است |
کشف این مکانیسم شگفتانگیز، نشان داد که چگونه سادهترین فرضهای برنامهنویسی در ترکیب با خطاهای تعریفی سایر لایهها، میتوانند به فاجعهبارترین باگهای احراز هویت قرن تبدیل شوند.
تسهیل ورود به حسابهای فاقد پسورد از طریق خطای سیستمی، ضربهای عمیق به تمامی راهکارهای hardening سنتی وارد ساخت که حذف رمزعبور را اوج امنیت تلقی میکردند.
محور ۰۳: سناریوی اکسپلویت و شکار هانیپاتها؛ نحوه نفوذ مهاجمان به حساب روت کانتینرهای آلپاین و روترهای OpenWrt
به محض انتشار نخستین گزارشهای فنی پیرامون آسیبپذیری SSHole، سرعت واکنش جوامع هکری و کارشناسان کلاهسفید بیسابقه بود. پژوهشگران شرکت Previdian که چندین هانیپات با سیستمعامل آلپاین لینوکس را در نقاط مختلف جغرافیایی مستقر کرده بودند، گزارش دادند که ظرف کمتر از چهار ساعت، نخستین حملات واقعی روی پورت ۲۲ ثبت شد. مهاجمان با استفاده از باتنتهای خودکار، بستههای احراز هویت حاوی پسوردهای تصادفی با طول ۳۰۰ تا ۵۰۰ بایت ارسال میکردند.
کد اکسپلویت این آسیبپذیری به شکلی باورنکردنی ساده است. نیازی به هیچگونه کامپایلر یا ابزار ویژه وجود ندارد. با یک کلاینت سفارشی SSH یا حتی یک اسکریپت ساده با کتابخانههایی نظیر Paramiko در پایتون، مهاجم رشتهای از کاراکترهای دلخواه (مثلاً ۲۶۰ کاراکتر حرف A) تولید کرده و آن را در قالب فیلد Password ارسال مینماید. اگر سرور هدف از آلپاین لینوکس با بسته پیشفرض openssh-server استفاده کند و حساب روت دارای کاراکتر ستاره در فایل shadow باشد، کلاینت بلافاصله تاییدیه ورود دریافت کرده و پرامپت خط فرمان روت به مهاجم تحویل داده میشود.
نمودار زیر سهم و میزان آسیبپذیری سیستمهای مختلف سروری را در برابر این بردار تهاجمی نشان میدهد:
نمودار مقایسهای // سهم سیستمهای در معرض خطر بر پایه توزیع لینوکس و کتابخانه پایه ۲۰۲۶
توزیع شاخصهای کاربری سیستمعامل آلپاین اهمیت بحرانی رفع این نقص را در اکوسیستم رایانش ابری آشکار میسازد:
توزیع سهم کاربری توزیع آلپاین در زیرساختهای ابری و کانتینری
برای درک عمیقتر جزئیات پیادهسازی و ساختار نرمافزاری این آسیبپذیری، مسرد اصطلاحات فنی زیر گردآوری شده است:
مسرد تخصصی اصطلاحات امنیتی و سیستمی تکین
📚 پروندههای فوقمحرمانه و مرتبط در تکینگیم
اگر میخواهید فراتر از این هفتهنامه، به اعماق تاریکترین رخدادهای سایبرنتیک و طغیانهای پنهان هوش مصنوعی نفوذ کنید، کالبدشکافی این سه پرونده اختصاصی در تکین گاراژ را از دست ندهید:
گاهشمار رخدادهای کلیدی زیر سیر تکامل تاریخی و زنجیره کشف تا مهار این باگ را خلاصه میکند:
گاهشمار رخدادهای کلیدی کشف، افشا و مهار آسیبپذیری SSHole
| تاریخ وقوع رویداد | محور تحول و رخداد فنی | پیامد امنیتی و سطح اقدام صورتگرفته |
|---|---|---|
| مرداد ۱۳۹۵ | انتشار پچ CVE-2016-6210 در پروژه OpenSSH | تعبیه منطق فراخوانی هش ساختگی برای جلوگیری از حملات شمارش نام کاربری. |
| مهر ۱۴۰۵ | کشف رفتار تطابق ستاره توسط اوزگون کولتکین | شناسایی رفتار خطای musl و اثبات امکان نفوذ روت بدون داشتن پسورد. |
| آبان ۱۴۰۵ | انتشار عمومی هشدارهای امنیتی و تسخیر هانیپاتها | ثبت نفوذهای گسترده در سرورهای تله توسط باتنتهای مهاجم سراسر وب. |
| آبان ۱۴۰۵ | انتشار بسته اصلاحی OpenSSH 10.6p2 | رفع رسمی باگ در توزیع آلپاین و انتشار راهنمای فوری تغییر تنظیمات sshd. |
محور ۰۴: کالبدشکافی توزیعهای در معرض خطر؛ از ایمیجهای داکر و کوبرنتیز تا تجهیزات اینترنت اشیا
یکی از بزرگترین چالشهای مدیران سیستم در مواجهه با آسیبپذیری SSHole، شناسایی دقیق گستره داراییهای دیجیتال تحت تاثیر است. از آنجا که این نقص در ترکیب OpenSSH و musl libc رخ میدهد، بررسی نسخه سیستمعامل سرور میزبان به تنهایی کافی نیست.
توزیع محبوب Alpine Linux به دلیل دارا بودن حجم پایه کمتر از ۵ مگابایت، در بیش از نیمی از پایپلاینهای استقرار خودکار و کانتینرهای Dockerfile به عنوان ایمیج پایه انتخاب میشود. در صورتی که در جریان ساخت کانتینر بسته `openssh` یا `openssh-server` نصب شده باشد و سرویس sshd برای دسترسی ریموت یا اجرای کامندهای دورکاری فعال گردیده باشد، آن کانتینر در معرض خطر نفوذ قطعی قرار دارد.
علاوه بر کانتینرها، روترهای شبکه مبتنی بر OpenWrt، بردهای صنعتی تعبیهشده در سیستمهای کنترل اسکادا (SCADA) و فرمویرهای توسعهیافته با ابزارهای Buildroot و Yocto نیز که از musl به عنوان کتابخانه پیشفرض بهره میبرند، مستقیماً آسیبپذیر هستند. در بسیاری از این دستگاهها، حساب root بدون پسورد تعریف شده و کاربر موظف است صرفاً از طریق کلید SSH به دستگاه متصل شود؛ دقیقا همان سناریویی که مهاجم با رمزعبور ۲۵۷ کاراکتری میتواند به عنوان روت به آن نفوذ کند.
درک عمیق این گستره وسیع آسیبپذیری، مدیران ارشد فناوری را وادار ساخته است تا تدوین راهکارهای عاجل و پچهای میدانی را در اولویت نخست برنامههای عملیاتی خود قرار دهند.
پیچیدگی محیطهای کانتینری مدرن ایجاب میکند که فرآیند بهروزرسانی نه تنها روی ماشینهای مجازی، بلکه در تمامی پایپلاینهای بیلد به صورت خودکار اعمال گردد.
محور ۰۵: راهنمای عملیاتی و گامبهگام پچ اضطراری؛ بهروزرسانی OpenSSH 10.6p2 و ایمنسازی sshd_config
برای مهار فوری این تهدید و جلوگیری از سقوط سرورها، تیمهای امنیت شبکه و مدیران سیستم باید یک راهبرد سهمرحلهای شفاف و آزمودهشده را در سرتاسر زیرساختهای خود به اجرا درآورند. این راهکارها تضمین میکنند که حتی در صورت تأخیر در بهروزرسانی برخی ایمیجها، بردار نفوذ به طور کامل مسدود گردد.
گام نخست و بنیادین، ارتقای مستقیم بسته نرمافزاری OpenSSH به نسخه `10.6p2` یا بالاتر است. در توزیع آلپاین لینوکس، مخازن رسمی به سرعت پچ اصلاحی را منتشر کردهاند. با اجرای دستورات رسمی مدیر بسته `apk`، بسته آسیبپذیر بازنویسی شده و منطق احراز هویت تصحیح میگردد. این اقدام مشابه حساسیتهایی است که در تحلیل کالبدشکافی نفوذ اطلاعاتی چین به انویدیا پیرامون ضرورت پایش فوری زنجیره ابزارهای زیرساختی مورد بررسی قرار دادیم.
گام دوم، اعمال پیکربندی ایمن در فایل تنظیمات دیمن SSH یعنی `/etc/ssh/sshd_config` است. این راهکار به عنوان یک خط دفاعی کمکی (Mitigation Workaround) فوقالعاده حیاتی عمل میکند؛ به ویژه برای سیستمهایی که به دلیل ملاحظات تجاری امکان ریاستارت آنی یا آپدیت نرمافزاری ندارند. با تنظیم پارامتر `PasswordAuthentication no` و راهاندازی مجدد سرویس، دیمن SSH اساساً هرگونه تبادل رمزعبور را رد کرده و مهاجم دیگر قادر به ارسال پسورد ۲۵۷ کاراکتری نخواهد بود.
رادار تحلیلی زیر آسیبپذیری سرور را در پنج محور حیاتی پیش و پس از اعمال پچها مقایسه میکند:
رادار پنجمحوره ارزیابی آسیبپذیری سرورهای لینوکس در برابر SSHole
کنسول تعاملی زیر توالی دقیق دستورات خط فرمان لینوکس را برای ممیزی، عیبیابی و پچ فوری سرورها به نمایش میگذارد:
کنسول خط فرمان عملیاتی // دستورات بررسی و پچ فوری سرورهای آلپاین
// STEP 2: APPLY EMERGENCY PACKAGE UPDATE ON ALPINE LINUX
// STEP 3: HARDEN SSHD CONFIGURATION (WORKAROUND MANDATE)
// STEP 4: RESTART SSHD SERVICE & VERIFY ACTIVE CONFIG
دماسنج احساسات بازار بازتابدهنده سرعت عمل و سطح اضطراب تیمهای توسعه و امنیت زیرساخت در سرتاسر جهان است:
دماسنج احساسات بازار // شاخص واکنش جامعه مهندسی دِوآپس و امنیت شبکه
اگرچه کشف این رخنه باعث آمادهباش سراسری در تیمهای زیرساخت شده است، اما شفافیت تیم OpenSSH و در دسترس بودن راهکارهای ساده دور زدن آسیبپذیری (نظیر غیرفعالسازی پسورد) مانع از بروز خسارتهای گسترده شده است.
محور ۰۶: ممیزی امنیتی فایل etc/shadow؛ بازنویسی کاراکترهای هش و غیرفعالسازی دائمی رمزعبور
گام سوم در راهبرد جامع مقابله با SSHole، پاکسازی ریشهای فایل اعتبارسنجی `/etc/shadow` است. بسیاری از مدیران سیستم آگاه نیستند که کاراکترهای مختلف ذخیرهشده در ستون دوم این فایل، معانی فنی کاملاً متفاوتی برای دیمنهای احراز هویت دارند.
در لینوکس استاندارد، علامت ستاره `*` به معنای حسابی است که رمزعبور برای آن تنظیم نشده اما حساب قفل نشده است. در نقطه مقابل، علامت تعجب `!` به صورت صریح به معنای «حساب قفلشده» (Locked Account) تلقی میشود. در صورتی که کاربری در فایل shadow دارای علامت `!` یا `!*` باشد، موتور احراز هویت سیستمعامل پیش از آنکه اساساً تابع `crypt()` را صدا بزند، ورود را باطل اعلام میکند و حمله با پسورد طولانی نیز بیاثر خواهد شد.
تیمهای امنیتی باید با استفاده از اسکریپتهای شل، تمامی خطوط فایل shadow را پیمایش کرده و هر خطی که ستون پسورد آن صرفاً شامل کاراکتر `*` است را با دستور `passwd -l
علاوه بر این، لاگهای سیستمی در مسیر `/var/log/messages` یا خروجی دستور `journalctl` باید برای شناسایی درخواستهای ورود با پسوردهای بزرگ اسکن شوند؛ ثبت خطاهای مکرر در تابع crypt نشانه قطعی اسکن هدفمند توسط باتنتها است.
ابعاد مهندسی این رخداد ایجاب میکند که رویکرد جامعه نرمافزارهای آزاد به تست یکپارچگی میانکتابخانهای به طور بنیادین بازطراحی شود.
توزین پیامدهای مثبت و چالشهای اجرای سختگیریهای جدید در پروتکل SSH، نقشه راه روشنی برای راهبران زیرساخت ترسیم میکند:
- حذف قطعی بردار حملات مبتنی بر رمزعبور و ارتقای اجباری به احراز هویت با کلید رمزنگاری
- ممیزی عمیق کانتینرهای قدیمی آلپاین و بهینهسازی زنجیره ایمیجهای پایه در کوبرنتیز
- افزایش انضباط در تعریف مقادیر حسابهای سیستمی فایل shadow و رفع خطاهای پیشفرض
- امکان قطع موقت دسترسی کاربرانی که هنوز به احراز هویت با پسورد وابسته هستند
- پیچیدگی هماهنگی پچ در صدها هزار روتر توزیعشده شبکه و تجهیزات اینترنت اشیا
- افزایش سربار کاری تیمهای پشتیبانی زیرساخت در ساعات اولیه اعمال مسدودسازی
محور ۰۷: مانیفست تابآوری زیرساختهای متنباز؛ ۵ اصل راهبردی برای محافظت از سرورها در برابر خطاهای کتابخانههای سیستمی
بحران SSHole باید به عنوان یک زنگ بیدارباش تاریخی برای کل صنعت نرمافزار تلقی گردد. این واقعه اثبات کرد که حتی باگذشت دههها از نگارش ابزارهای بنیادین، گوشههای تاریکی در تعامل توابع سیستمی وجود دارد که میتواند زیرساختهای جهان را به لبه پرتگاه بکشاند. برای مصونسازی قطعی سرورها در برابر تهدیدات مشابه، جامعه متنباز و تیمهای سازمانی نیازمند پیادهسازی پنج اصل راهبردی زیر هستند.
اصل نخست، ممنوعیت مطلق احراز هویت مبتنی بر پسورد در سرورهای محیط عملیاتی (Zero Password Mandate) است. پورتهای SSH تحت هیچ شرایطی نباید مجاز به تبادل رمزعبور باشند. احراز هویت باید منحصراً از طریق کلیدهای رمزنگاری قوی، احراز هویت با گواهینامههای موقت (SSH Certificates) یا کلیدهای سختافزاری FIDO2 انجام پذیرد.
اصل دوم، ایزولاسیون کامل پورتهای مدیریتی از اینترنت عمومی است. سرویسهای حساسی نظیر sshd هرگز نباید مستقیماً بر روی اینترنت عمومی در معرض شنود و اسکن قرار گیرند. استقرار در شبکههای خصوصی مجازی، استفاده از مشهای امن نظیر WireGuard یا Tailscale و بهرهگیری از پروتکلهای Zero Trust Network Access (ZTNA) لایهای نفوذناپذیر در برابر مهاجمان ناشناس ایجاد میکند.
اصل سوم، تست یکپارچگی متقاطع در خطوط تولید کانتینرها (Cross-Libc CI/CD Auditing) است. پروژههای نرمافزاری امنیتی موظفند کدهای خود را نه تنها بر روی محیطهای استاندارد لینوکس با کتابخانه glibc، بلکه بر روی musl، uClibc و سایر پیادهسازیهای کمحجم نیز به صورت مداوم و خودکار تست کنند تا رفتارهای غیرمنتظره توابع کتابخانهای در مراحل اولیه کشف شوند.
اصل چهارم، ممیزی و استانداردسازی خودکار متغیرهای فایل shadow در ایمیجهای داکر است. اسکریپتهای اعتبارسنجی پایپلاینهای استقرار باید مانع از اجرای کانتینرهایی شوند که در فایل shadow خود کاراکتر ستاره دارند؛ تمامی حسابهای قفلشده سیستمی باید الزاماً با کاراکترهای صریح `!` یا `!*` مسدود شوند.
اصل پنجم و نهایی، ارتقای شفافیت در انتشار فوری پچها و هماهنگی میان پروژههای زیرساختی است. توسعهدهندگان توزیعهای مختلف باید مکانیزمهای آگاهسازی فوری را تقویت کرده و مدیران سیستم با اتوماسیون بهروزرسانی بستههای امنیتی، زمان بقای باگهای زیرودی را به صفر برسانند.
حکم نهایی و فهرست منابع رسمی و اعتبارسنجی
تمامی حقایق فنی، شبیهسازیهای ترمینال و اسناد بررسیشده در این گزارش با تکیه بر مراجع رسمی زیر تایید شده است:
- National Vulnerability Database (NVD): CVE-2026-123158 Detail and CVSS 8.1 Vulnerability Severity Analysis
- The Hacker News Security Bulletin: Hackers Target OpenSSH SSHole Flaw Within Hours of Disclosure, Gain Root on Honeypot
- Previdian Cyber Threat Intelligence: Forensic Identification and In-the-Wild Exploitation Telemetry of SSHole
- Alpine Linux Security Advisory: OpenSSH 10.6p2 Patch Release Notes and Package Update Instructions
- musl libc Project Documentation: Crypt Function Implementation Limits and Asterisk Return Specifications
سوالات متداول پیرامون آسیبپذیری بحرانی SSHole در لینوکس
آسیبپذیری SSHole (CVE-2026-123158) دقیقاً چگونه کار میکند؟
این باگ بر اثر تعامل ناخواسته میان OpenSSH و کتابخانه musl libc رخ میدهد؛ زمانی که پسوردی بیش از ۲۵۶ بایت ارسال شود، تابع crypt در musl خطا داده و ستاره (*) برمیگرداند. سرور این مقدار را با ستاره ذخیرهشده در فایل shadow مقایسه کرده و به دلیل یکسان بودن، ورود بدون پسورد تایید میشود.
چه سیستمعاملها و توزیعهایی در معرض خطر حمله قرار دارند؟
تمام توزیعهای مبتنی بر کتابخانه musl نظیر آلپاین لینوکس (Alpine Linux)، روترهای OpenWrt، ایمیجهای تعبیهشده Buildroot و Yocto که از سرویس OpenSSH بدون ماژول PAM استفاده میکنند آسیبپذیر هستند.
آیا سرورهای استاندارد اوبونتو، دبیان یا ردهت نیز در معرض خطر هستند؟
خیر؛ سرورهایی که از کتابخانه استاندارد گنو (GNU glibc) استفاده میکنند یا ماژولهای احراز هویت PAM روی آنها فعال است به هیچ وجه تحت تاثیر این آسیبپذیری نیستند.
راهکار سریع و اضطراری برای ایمنسازی سرور چیست؟
سریعترین اقدام، قرار دادن عبارت PasswordAuthentication no در فایل تنظیمات /etc/ssh/sshd_config و ریاستارت سرویس sshd است تا تبادل رمزعبور به طور کامل مسدود شود.
آیا ارتقای بسته OpenSSH در آلپاین لینوکس این مشکل را به طور کامل حل میکند؟
بله؛ با اجرای دستور apk add --upgrade openssh و نصب نسخه 10.6p2 یا بالاتر، منطق اعتبارسنجی اصلاح شده و سرور کاملاً ایمن میگردد.
چرا کاراکترهای فایل shadow در این رخنه اهمیت دارند؟
زیرا اگر حسابهای قفلشده به جای ستاره (*) دارای علامت تعجب (!) باشند، موتور سیستمعامل ورود را پیش از فراخوانی تابع crypt مسدود میسازد و اکسپلویت بیاثر میشود.
گالری تصاویر تکمیلی: راهنمای رفع آسیبپذیری SSHole در OpenSSH (CVE-2026-123158)















