مقدمه: وقتی خطاهای کلاسیک، سیستمهای مدرن را به زانو درمیآورند
در اوایل سال ۱۴۰۵ (۲۰۲۶)، جامعه امنیت سایبری با یکی از خطرناکترین آسیبپذیریهای دهه اخیر مواجه شد. آسیبپذیری با شناسه CVE-2026-41940 که قلب تپنده مدیریت هاستینگ جهان، یعنی cPanel & WHM را هدف قرار داد. این یک باگ پیچیده حافظه نبود؛ بلکه یک خطای منطقی از جنس Carriage Return Line Feed (CRLF) Injection بود که به مهاجم اجازه میداد با یک درخواست HTTP ساده، بدون داشتن نام کاربری و رمز عبور، به سطح دسترسی Root برسد.
اهمیت این آسیبپذیری زمانی مشخص میشود که بدانیم بیش از ۱.۵ میلیون سرور لینوکسی در سطح اینترنت از cPanel استفاده میکنند. در این مقاله از تکناو، مکانیزم این Zero-Day را به صورت فنی و خطبهخط بررسی میکنیم تا درک کنیم چگونه یک اعتبارسنجی ساده هدرهای HTTP میتواند کل یک زیرساخت را به خطر بیندازد.
ریشهیابی آسیبپذیری (Root Cause Analysis)
سرویس اصلی که وظیفه مدیریت ورود به پنلهای cPanel و WHM را برعهده دارد، دیمن cpsrvd است. فرایند لاگین در این سرویس به این شکل طراحی شده بود که قبل از تایید نهایی رمز عبور، یک فایل نشست (Session File) موقت روی دیسک ایجاد میکرد.
آسیبپذیری دقیقاً در مرحله پردازش هدر Authorization: Basic رخ میدهد. مهاجم میتواند محتوای این هدر را پیش از ارسال به سرور دستکاری کند. مشکل اینجاست که cpsrvd در نسخههای آسیبپذیر، هدرهای HTTP را به درستی Sanitize (پاکسازی) نمیکند.
«بزرگترین اشتباه در معماری cpsrvd این بود که محتوای فیلد رمز عبور را بدون فیلتر کردن کاراکترهای کنترلی، مستقیماً وارد فرایند ساخت فایل سشن موقت میکرد. این یک دعوتنامه باز برای حملات Injection بود.»
— گزارش تحلیل فنی، تیم تحقیقاتی watchTowr
تشریح حمله تزریق CRLF
حمله CRLF زمانی رخ میدهد که مهاجم کاراکترهای
(بازگشت به ابتدای خط و خط جدید) را در یک ورودی متنی وارد کند. در فایلهای متنی لینوکس، این کاراکترها نشاندهنده پایان یک خط و شروع خط بعدی هستند.
در جریان این اکسپلویت، مهاجم یک درخواست لاگین با هدری مشابه زیر ارسال میکند:
GET / HTTP/1.1
Host: target-server.com:2087
Authorization: Basic YWRtaW46cGFzc3dvcmRcclxudXNlcj1yb290
عبارت YWRtaW46cGFzc3dvcmRcclxudXNlcj1yb290 در واقع فرمت Base64 شده رشته زیر است:
admin:password
user=root
هنگامی که cpsrvd این هدر را دیکد میکند و رشته را در فایل نشست موقت مینویسد، به دلیل وجود
، سیستم آن را به عنوان دو خط مجزا تفسیر میکند:
password=password
user=root
با این ترفند ساده، مهاجم موفق شده است ویژگی user=root را به فایل نشست تزریق کند. حالا تنها کاری که باید انجام شود، فراخوانی مجدد این نشست است. سیستم فایل سشن را میخواند، میبیند که user=root تنظیم شده است، و بدون نیاز به تایید رمز عبور، دسترسی بالاترین سطح لینوکس (Root) را به مهاجم تقدیم میکند!
زنجیره حمله (Attack Chain) در دنیای واقعی
تحقیقات نشان میدهد که مهاجمان (احتمالاً گروههای APT دولتی و باجافزاری) از اسفند ۱۴۰۴ (فوریه ۲۰۲۶) — هفتهها پیش از افشاء عمومی — به طور فعال از این Zero-Day استفاده میکردهاند.
زنجیره حمله معمولاً شامل این ۴ مرحله است:
- اسکن گسترده (Mass Scanning): مهاجمان اینترنت را برای پورتهای باز
2083(cPanel) و2087(WHM) اسکن میکنند. - تزریق هدر مخرب: با ارسال یک درخواست HTTP که هدر
Authorizationآن آلوده بهاست، نشست جعلی ساخته میشود. - دریافت Session Token: سرور یک توکن نشست معتبر بازمیگرداند.
- اجرای کد از راه دور (RCE): مهاجم با استفاده از توکن روت، وارد WHM شده و فوراً یک Web Shell آپلود میکند یا اسکریپت باجافزار را روی تمام اکانتهای هاستینگ اجرا میکند.
گستردگی و دامنه تاثیر (Impact Scope)
این آسیبپذیری یکی از بالاترین امتیازات CVSS (معادل ۹.۸ از ۱۰) را به خود اختصاص داد. دلیل این امتیاز بالا، سادگی اکسپلویت (بدون نیاز به هیچگونه تعامل کاربر یا پیشنیاز خاص) و سطح دسترسی نهایی (Root) است.
نسخههای آسیبپذیر شامل تمام ورژنهای cPanel & WHM بعد از نسخه 11.40 میشدند. این شامل سرویسهای جانبی مثل DNSOnly و WP Squared نیز میشد. در زمان انتشار پچ، موتورهای جستجوی اینترنت اشیا مانند Shodan نشان میدادند که بیش از یک میلیون سرور در سطح جهان در معرض خطر فوری قرار دارند.
راهکارهای مقابله و کاهش خطرات (Mitigation)
سازمان CISA فوراً این آسیبپذیری را به کاتالوگ KEV (Known Exploited Vulnerabilities) خود اضافه کرد و به تمام سازمانهای دولتی آمریکا دستور داد تا ظرف ۴۸ ساعت سرورهای خود را آپدیت کنند. در ایران نیز مرکز ماهر هشدارهای مشابهی صادر کرد.
۱. اعمال پچ فوری (اولین و مهمترین قدم)
شرکت WebPros (مالک cPanel) پچهای امنیتی را برای شاخههای مختلف منتشر کرد. مدیران سرور باید مطمئن شوند که حداقل به یکی از نسخههای زیر بهروزرسانی کردهاند:
11.136.0.5— شاخه اصلی (Stable)11.134.0.20— شاخه LTS11.132.0.2911.130.0.19
۲. محدودسازی دسترسی شبکه (Workarounds)
اگر به هر دلیلی آپدیت سرور بلافاصله مقدور نیست، باید پورتهای cPanel و WHM را از طریق فایروال لینوکس (مانند iptables یا firewalld) مسدود کنید و دسترسی را فقط به IPهای تایید شده مدیران (Whitelisting) محدود نمایید:
# مسدود کردن پورتهای cPanel/WHM از اینترنت عمومی
iptables -I INPUT -p tcp --dport 2083 -j DROP
iptables -I INPUT -p tcp --dport 2087 -j DROP
iptables -I INPUT -p tcp --dport 2095 -j DROP
iptables -I INPUT -p tcp --dport 2096 -j DROP
# اجازه دسترسی فقط از IP مدیر
iptables -I INPUT -s YOUR_ADMIN_IP -p tcp --dport 2087 -j ACCEPT
۳. شکار تهدید (Threat Hunting)
اگر نگران هستید که سرور شما پیش از اعمال پچ هک شده باشد، این موارد را بررسی کنید:
- بررسی مسیر
/var/cpanel/sessions/raw/برای یافتن فایلهای نشست مشکوک. - تحلیل لاگهای
cpsrvdبه دنبال هدرهایAuthorizationبا طول غیرعادی یا حاوی کاراکترهای اسکینشده. - بررسی لاگ کاربران جدید ساخته شده در سطح لینوکس (فایل
/etc/passwd).
همچنین میتوانید با دستور زیر لاگهای cpsrvd را برای الگوی حمله فیلتر کنید:
grep -aP '[\r\n].*user=root' /var/log/cpanel/error_log
grep -aP 'Authorization: Basic [A-Za-z0-9+/]{50,}' /usr/local/cpanel/logs/access_log
چکلیست واکنش سریع برای مدیران سرور
اگر مسئول سروری با cPanel هستید، این جدول ترتیب عملیات شماست — از دقیقه اول تا پایان هفته:
| اقدام | چرا | فوریت |
|---|---|---|
| بهروزرسانی cPanel/WHM به نسخه وصلهشده | بستن خودِ حفره | همین حالا |
| محدودسازی پورتهای ۲۰۸۶/۲۰۸۷ به IP مشخص/VPN | حذف سطح حمله از اینترنت عمومی | امروز |
| ممیزی حسابها، کلیدهای SSH و کرونجابها | کشف بکدور احتمالی پیش از وصله | امروز |
| چرخش گذرواژهها و توکنهای API | بیاثرکردن اعتبارنامههای احتمالاً لورفته | این هفته |
| پایش لاگ خروجی و اتصالهای ناشناس | تشخیص سوءاستفاده در بازه آسیبپذیر | مستمر |
نکتهای که بسیاری فراموش میکنند: وصلهکردن نفوذِ قبلاً انجامشده را پاک نمیکند. اگر سرور شما در بازه افشا تا وصله در دسترس عموم بوده، باید با فرض نفوذ (Assume Breach) ممیزی کنید.
درسهایی برای آینده معماری نرمافزار
آسیبپذیری CVE-2026-41940 یک یادآوری تلخ برای مهندسان نرمافزار است: هرگز به ورودیهای کاربر اعتماد نکنید، حتی در هدرهای استاندارد HTTP.
نوشتن مستقیم دادههای کنترلنشده در فایلهای سیستمی یک ضدالگو (Anti-Pattern) کلاسیک است که در سال ۲۰۲۶ همچنان قربانی میگیرد. معماریهای مدرن باید از پارسرهای ساختاریافته (مثل JSON یا دیتابیسهای موقت NoSQL) برای مدیریت نشستها استفاده کنند، جایی که کاراکترهایی مثل
نمیتوانند ساختار داده را بشکنند.
تکناو به تمامی مدیران زیرساخت توصیه میکند روند بهروزرسانی سیستمعامل و کنترلپنلهای خود را به صورت کاملاً خودکار (Unattended Upgrades) تنظیم کنند، زیرا در دوران Agentic AI، فاصله بین افشای یک آسیبپذیری تا اکسپلویت شدن انبوه سرورها به کمتر از چند ساعت رسیده است.
پرسشهای پرتکرار
CVE-2026-41940 چیست؟
شناسه آسیبپذیری روز-صفر بحرانی در cPanel که به مهاجم اجازه میدهد بدون هیچ احراز هویتی، زنجیره لاگین را دور بزند و به دسترسی روت کامل سرور برسد — یکی از خطرناکترین کلاسهای نقص امنیتی (Pre-Auth RCE تا سطح روت).
چطور بفهمم سرورم آسیبپذیر است؟
اگر cPanel/WHM شما پیش از نسخه وصلهشده اعلامی سازنده است، آسیبپذیر فرض کنید. علائم نفوذ را هم بررسی کنید: حسابهای ادمین ناشناس، کرونجابهای جدید، پردازههای غیرمنتظره و ترافیک خروجی غیرعادی.
فوریترین اقدام مقابله چیست؟
بهروزرسانی فوری cPanel به نسخه وصلهشده، محدودکردن دسترسی پورتهای مدیریتی (۲۰۸۶/۲۰۸۷) به IPهای مشخص یا VPN، فعالسازی احراز هویت دومرحلهای و ممیزی کامل حسابها و کلیدهای SSH پس از وصله.