RCE چیست و چگونه هکرها از آن برای نفوذ به سرورها استفاده میکنند؟
آسیبپذیری بحرانی CVE-2026-60004 در Gitea با امتیاز ۹.۸ مورد سوءاستفاده قرار گرفته است. RCE چیست و چگونه از Gitea محافظت کنیم؟
ک آسیبپذیری بحرانی در Gitea با امتیاز CVSS 9.8 وارد مرحله سوءاستفاده واقعی شده است. این نقص با شناسه CVE-2026-60004 یک آسیبپذیری از نوع Remote Code Execution یا RCE است که میتواند به مهاجم اجازه دهد دستورات دلخواه را روی سرور اجرا کند.
آژانس امنیت سایبری و زیرساخت آمریکا (CISA) نیز این آسیبپذیری را به فهرست Known Exploited Vulnerabilities یا KEV اضافه کرده است؛ اقدامی که بر اساس شواهد سوءاستفاده فعال از این نقص انجام شده است.
در یک حادثه گزارششده، مهاجمان با سوءاستفاده از همین آسیبپذیری توانستهاند روی نمونه آسیبپذیر Gitea یک Dropper شبیه به بدافزارهای استخراج رمزارز اجرا کنند؛ موضوعی که نشان میدهد CVE-2026-60004 دیگر صرفاً یک آسیبپذیری تئوری نیست.
اما RCE چیست؟ چرا این نوع آسیبپذیریها خطرناک هستند و در مورد Gitea چگونه میتوانند مسیر اجرای کد روی سرور را برای مهاجم باز کنند؟
در این مقاله میخوانید
- RCE چیست و دقیقاً چه کاری به مهاجم اجازه میدهد؟
- CVE-2026-60004 چیست؟
- چرا این آسیبپذیری امتیاز ۹.۸ گرفته است؟
- RCE در Gitea چگونه اتفاق میافتد؟
- Git Hook چیست و چرا در این حمله اهمیت دارد؟
- فعال بودن ثبتنام عمومی چه خطری ایجاد میکند؟
- مهاجم بعد از اجرای کد چه کارهایی میتواند انجام دهد؟
- از کجا بفهمیم Gitea مورد سوءاستفاده قرار گرفته است؟
- چگونه از Gitea در برابر این نوع حملات محافظت کنیم؟
RCE چیست؟
RCE مخفف Remote Code Execution و به معنی «اجرای کد از راه دور» است.
به زبان ساده، RCE زمانی رخ میدهد که یک مهاجم بتواند از راه دور کاری کند که سیستم هدف، کد یا دستور انتخابشده توسط مهاجم را اجرا کند.
برای درک بهتر، یک سرور را مثل کامپیوتری در نظر بگیرید که به اینترنت متصل است و یک نرمافزار مشخص روی آن اجرا میشود. این نرمافزار باید فقط وظایفی را انجام دهد که برای آن طراحی شده است.
اگر یک آسیبپذیری باعث شود مهاجم بتواند ورودی خود را به شکلی دستکاری کند که نرمافزار به جای انجام وظیفه عادی، یک دستور سیستمعامل را اجرا کند، با یک RCE روبهرو هستیم.
بنابراین در سادهترین تعریف:
RCE یعنی مهاجم توانسته از راه دور اجرای کد روی سیستم هدف را تحت کنترل خود قرار دهد.
البته RCE لزوماً به معنی «کنترل کامل سرور» نیست.
سطح دسترسی مهاجم به این بستگی دارد که کد مخرب با چه حساب کاربری یا سطح دسترسی اجرا شود. اگر سرویس با یک حساب محدود اجرا شود، دامنه دسترسی مهاجم نیز محدودتر خواهد بود؛ اما اگر سرویس دسترسی گستردهای داشته باشد، پیامدهای حمله میتواند بسیار جدیتر شود.
چرا RCE خطرناک است؟
بسیاری از آسیبپذیریها فقط یک مشکل محدود ایجاد میکنند؛ مثلاً باعث افشای اطلاعات، دور زدن یک محدودیت یا از کار افتادن سرویس میشوند.
اما RCE میتواند یک قدم بسیار فراتر برود.
وقتی مهاجم به اجرای کد روی سرور برسد، بسته به سطح دسترسی سرویس ممکن است بتواند:
- فایل ایجاد یا تغییر دهد؛
- برنامه یا ابزار دیگری اجرا کند؛
- اطلاعات قابل دسترس برای حساب سرویس را سرقت کند؛
- برای خود ماندگاری ایجاد کند؛
- با سرور مهاجم ارتباط برقرار کند؛
- از منابع پردازشی سیستم سوءاستفاده کند؛
- به دنبال دسترسی به سایر سیستمهای شبکه برود؛
- یا در مراحل بعدی حمله، بدافزار و باجافزار مستقر کند.
به همین دلیل، RCE معمولاً یک نقطه عطف مهم در زنجیره حمله است.
البته این موارد به معنی آن نیست که هر RCE الزاماً به همه این اتفاقات منجر میشود. شدت پیامد به معماری شبکه، سطح دسترسی سرویس، تنظیمات امنیتی و اقدامات مهاجم بستگی دارد.
CVE-2026-60004 چیست؟
CVE-2026-60004 یک آسیبپذیری بحرانی در Gitea است که امکان Remote Code Execution را فراهم میکند.
طبق Advisory رسمی Gitea، این آسیبپذیری نسخههای 1.17 تا قبل از 1.27.1 را تحت تأثیر قرار میدهد و در نسخه 1.27.1 اصلاح شده است.
نقطه آسیبپذیر در DiffPatch endpoint قرار دارد. مهاجمی که دسترسی معمولی Write به یک Repository داشته باشد، میتواند از محتوای تحت کنترل خود برای ایجاد یک Git Hook اجرایی استفاده کند و در نهایت دستورات Shell را با سطح دسترسی کاربر سیستمعامل Gitea اجرا کند.
این یعنی آسیبپذیری فقط امکان دستکاری یک Repository را ایجاد نمیکند؛ بلکه میتواند مسیر را به سمت اجرای دستور روی خود سرور باز کند.
RCE در Gitea چگونه اتفاق میافتد؟
برای درک سازوکار حمله نیازی به ورود به جزئیات Exploit نداریم.
زنجیره کلی را میتوان اینطور خلاصه کرد:
دسترسی Write به Repository
↓
ارسال محتوای مخرب از مسیر DiffPatch
↓
ایجاد Git Hook تحت کنترل مهاجم
↓
اجرای Hook
↓
اجرای دستورات Shell روی سرور
همین زنجیره است که یک آسیبپذیری در قابلیت مدیریت Repository را به یک RCE تبدیل میکند.
نکته مهم این است که Git Hook خودش یک قابلیت مخرب نیست.
Hookها یکی از قابلیتهای استاندارد Git هستند و برای خودکارسازی کارهایی مانند تست، بررسی کد و اجرای عملیات مشخص هنگام رخ دادن رویدادهای Git استفاده میشوند.
مشکل زمانی ایجاد میشود که مهاجم بتواند یک Hook را با محتوای تحت کنترل خودش وارد مسیر اجرای Git کند.
در CVE-2026-60004، همین قابلیت قانونی میتواند به مسیر اجرای دستورات مهاجم تبدیل شود.
چرا ثبتنام عمومی Gitea اهمیت دارد؟
اینجا یکی از مهمترین نکات امنیتی این آسیبپذیری قرار دارد.
برای بهرهبرداری از CVE-2026-60004، مهاجم در مسیر اصلی حمله به Write Access نیاز دارد.
در نگاه اول ممکن است سؤال این باشد:
مهاجم چطور باید چنین دسترسیای داشته باشد؟
پاسخ به یکی از تنظیمات Gitea مربوط میشود: Open Registration.
طبق Advisory رسمی Gitea، اگر ثبتنام عمومی فعال باشد، یک بازدیدکننده بدون حساب قبلی میتواند حساب ایجاد کند و Repository خودش را بسازد و در نتیجه Write Access مورد نیاز برای ادامه حمله را به دست آورد.
این موضوع یک درس مهم برای امنیت سرویسهای اینترنتی دارد:
یک تنظیم ناامن همیشه خودش آسیبپذیری نیست، اما میتواند بهرهبرداری از یک آسیبپذیری را بسیار آسانتر کند.
اگر یک سازمان Gitea را فقط برای تیم داخلی توسعه استفاده میکند، باز گذاشتن ثبتنام عمومی معمولاً سطح حمله غیرضروری ایجاد میکند.
بنابراین باید بررسی شود که آیا واقعاً کاربران ناشناس باید بتوانند برای خودشان حساب بسازند یا خیر.
یک تنظیم ساده چگونه میتواند مسیر حمله را باز کند؟
سناریوی ساده را تصور کنید:
یک سازمان Gitea را روی اینترنت قرار داده است.
ثبتنام عمومی فعال است.
نسخه Gitea نیز آسیبپذیر است.
در این شرایط، زنجیره حمله میتواند به شکل زیر پیش برود:
۱. مهاجم یک نمونه آسیبپذیر Gitea را پیدا میکند.
۲. در صورت فعال بودن Registration، یک حساب ایجاد میکند.
۳. یک Repository ایجاد میکند و Write Access به دست میآورد.
۴. از مسیر آسیبپذیر DiffPatch استفاده میکند.
۵. Git Hook تحت کنترل خود را وارد زنجیره میکند.
۶. Hook اجرا میشود.
۷. دستور موردنظر مهاجم با سطح دسترسی سرویس Gitea اجرا میشود.
نکته مهم این است که غیرفعال کردن Registration جای Patch را نمیگیرد.
اگر نسخه آسیبپذیر باشد، باید به نسخه اصلاحشده ارتقا پیدا کند؛ اما حذف دسترسیهای غیرضروری میتواند سطح حمله را کاهش دهد.
چرا CVSS این آسیبپذیری ۹.۸ است؟
CVSS یا Common Vulnerability Scoring System یک چارچوب استاندارد برای ارزیابی شدت آسیبپذیریهای امنیتی است.
امتیاز CVSS از ۰ تا ۱۰ محاسبه میشود و بهطور کلی:
| امتیاز | سطح شدت |
|---|---|
| 0 | بدون شدت |
| 0.1 تا 3.9 | پایین |
| 4.0 تا 6.9 | متوسط |
| 7.0 تا 8.9 | بالا |
| 9.0 تا 10 | بحرانی |
بنابراین CVSS 9.8 در بالاترین سطح شدت قرار میگیرد.
اما یک نکته بسیار مهم وجود دارد:
CVSS بهتنهایی مشخص نمیکند که یک آسیبپذیری در دنیای واقعی چقدر خطرناک است.
یک آسیبپذیری با امتیاز بالا که هیچکس از آن سوءاستفاده نمیکند، ممکن است نسبت به یک نقص با امتیاز پایینتر اما با Exploit فعال، اولویت متفاوتی داشته باشد.
در مورد CVE-2026-60004، موضوع مهم این است که CISA آن را به Known Exploited Vulnerabilities یا KEV اضافه کرده است. CISA میگوید این فهرست بر اساس شواهدی از سوءاستفاده فعال از آسیبپذیریها تهیه میشود.
بنابراین اینجا دو هشدار همزمان داریم:
شدت فنی بالا + شواهد سوءاستفاده واقعی
و همین ترکیب، اولویت Patch را بالا میبرد.
مهاجمان در یک حمله واقعی چه کردند؟
گزارش منتشرشده درباره یک نمونه واقعی نشان میدهد مهاجمان از CVE-2026-60004 برای اجرای یک Dropper شبیه به Cryptominer استفاده کردهاند.
این حادثه زمانی مورد توجه قرار گرفت که مصرف CPU سرور برای مدت طولانی افزایش پیدا کرد و ارائهدهنده میزبان نیز نسبت به مصرف بالای منابع هشدار داد.
در بررسی انجامشده، Dropper تلاش میکرد محیط سیستم را بررسی کند، پردازشهای پرمصرف را شناسایی کند و سپس payload متناسب با معماری سیستم را دریافت و اجرا کند.
افزایش شدید مصرف CPU با یک Cryptojacking سازگار بود؛ یعنی مهاجم از توان پردازشی سیستم قربانی برای فعالیتهای مرتبط با استخراج رمزارز استفاده میکند.
با این حال، باید بین «گزارش سوءاستفاده از یک نمونه خاص» و «رفتار تمام مهاجمان» تفاوت قائل شد.
ماهیت دقیق payload نهایی و هویت اپراتور این حمله بهطور قطعی مشخص نشده است.
اگر RCE روی Gitea اتفاق بیفتد، چه چیزهایی در خطر است؟
Gitea فقط یک صفحه وب برای مشاهده کد نیست.
در بسیاری از سازمانها، این پلتفرم بخشی از زنجیره DevOps است و ممکن است به سیستمهای دیگری متصل باشد.
برای مثال:
- Repositoryهای خصوصی
- سیستمهای CI/CD
- سرورهای Build
- Tokenهای دسترسی
- کلیدهای SSH
- سیستمهای استقرار نرمافزار
- Registryهای داخلی
- سرویسهای توسعه و تست
به همین دلیل، یک RCE روی Gitea ممکن است صرفاً به خود Gitea محدود نماند.
اگر حساب سرویس Gitea دسترسی بیش از حد داشته باشد، مهاجم میتواند از همان دسترسی برای بررسی محیط اطراف و تلاش برای حرکت جانبی استفاده کند.
اینجا مفهوم Least Privilege اهمیت پیدا میکند:
هر سرویس باید فقط به منابعی دسترسی داشته باشد که برای انجام وظیفهاش ضروری است.
RCE خطرناک است، اما RCE + دسترسی بیش از حد میتواند بسیار خطرناکتر باشد.
از کجا بفهمیم Gitea مورد سوءاستفاده قرار گرفته است؟
اگر یک نمونه Gitea پیش از نصب Patch روی اینترنت در دسترس بوده، صرفاً بهروزرسانی آن کافی نیست و بهتر است احتمال سوءاستفاده قبلی نیز بررسی شود.
نشانههای زیر میتوانند ارزش بررسی داشته باشند:
- ایجاد حسابهای ناشناس یا غیرمنتظره
- ایجاد Repositoryهای ناشناخته
- Git Hookهای جدید یا غیرعادی
- افزایش غیرمعمول CPU
- اجرای پردازشهای ناشناس
- ایجاد فایلهای اجرایی غیرمنتظره
- Cron Jobهای جدید
- تغییر کلیدهای SSH
- ارتباطات خروجی غیرمعمول
- تغییرات غیرمنتظره در تنظیمات Gitea
- دسترسی غیرعادی به Repositoryها
هیچکدام از این موارد بهتنهایی اثبات قطعی نفوذ نیستند؛ اما مشاهده چند مورد همزمان باید باعث بررسی جدیتر لاگها و وضعیت سیستم شود.
چگونه از Gitea در برابر RCE محافظت کنیم؟
۱. Gitea را به نسخه اصلاحشده ارتقا دهید
مهمترین اقدام، نصب نسخه اصلاحشده است.
طبق Advisory رسمی Gitea، CVE-2026-60004 در نسخه 1.27.1 اصلاح شده است.
۲. ثبتنام عمومی را غیرفعال کنید
اگر کاربران ناشناس نیازی به ایجاد حساب ندارند، Open Registration را ببندید.
۳. دسترسی Write را محدود کنید
کاربران باید فقط برای Repositoryهایی که واقعاً به آنها نیاز دارند، مجوز نوشتن داشته باشند.
۴. Gitea را با حداقل دسترسی اجرا کنید
حساب سیستمعامل مربوط به Gitea نباید دسترسی غیرضروری به فایلها و سرویسهای حساس داشته باشد.
۵. دسترسی شبکه را محدود کنید
دسترسی مدیریتی و بخشهای حساس Gitea را در صورت امکان به شبکهها و کاربران مجاز محدود کنید.
۶. لاگها را نگهداری کنید
ثبت رویدادهای ورود، ایجاد حساب، ایجاد Repository و فعالیتهای غیرعادی میتواند برای تشخیص حمله بسیار مهم باشد.
۷. سیستمهای متصل را فراموش نکنید
اگر Gitea به CI/CD، Build Server یا Registry متصل است، در صورت مشاهده نفوذ، این سامانهها نیز باید بررسی شوند.
آیا Patch کردن بهتنهایی کافی است؟
برای جلوگیری از بهرهبرداری جدید، Patch ضروری است؛ اما اگر احتمال میدهید مهاجم قبلاً وارد سیستم شده، Patch بهتنهایی کافی نیست.
فرض کنید مهاجم قبل از بهروزرسانی، یک Hook، حساب کاربری، Cron Job یا ابزار دسترسی ایجاد کرده باشد.
با نصب نسخه جدید، آسیبپذیری اولیه برطرف میشود؛ اما اثر نفوذ قبلی لزوماً از بین نمیرود.
بنابراین در یک سرور مشکوک باید علاوه بر Patch، مواردی مانند حسابهای جدید، Hookها، پردازشها، Cron Jobها، فایلهای جدید، کلیدهای SSH و ارتباطات شبکه نیز بررسی شوند.
یک درس مهمتر از خود CVE
CVE-2026-60004 فقط یک نمونه از این واقعیت است که امنیت یک سرویس به Patch محدود نمیشود.
سه لایه باید همزمان در نظر گرفته شوند:
آسیبپذیری نرمافزاری
↓
پیکربندی ناامن
↓
دسترسی بیش از حد
اگر هر سه کنار هم قرار بگیرند، یک نقص نرمافزاری میتواند پیامد بسیار بزرگتری ایجاد کند.
در مورد Gitea، آسیبپذیری RCE در کنار Registration عمومی و دسترسیهای نامناسب میتواند مسیر حمله را برای مهاجم سادهتر کند.
جمعبندی
آسیبپذیری CVE-2026-60004 نشان میدهد که عبارت RCE صرفاً یک اصطلاح تخصصی در گزارشهای امنیتی نیست.
Remote Code Execution یعنی مهاجم بتواند از راه دور باعث اجرای کد یا دستور روی سیستم هدف شود.
در Gitea، این آسیبپذیری میتواند به مهاجمی که Write Access لازم را دارد اجازه دهد از مسیر DiffPatch یک Git Hook اجرایی ایجاد کرده و دستورات Shell را با سطح دسترسی سرویس Gitea اجرا کند.
حالا با اضافه شدن این CVE به فهرست CISA KEV و گزارش سوءاستفاده واقعی، سازمانهایی که از Gitea استفاده میکنند نباید آن را صرفاً یک نقص تئوری در نظر بگیرند.
Gitea را به نسخه اصلاحشده ارتقا دهید، ثبتنام عمومی غیرضروری را غیرفعال کنید، دسترسیهای Write را محدود نگه دارید و اگر سرور پیش از Patch در معرض اینترنت بوده است، احتمال نفوذ قبلی را نیز بررسی کنید.
پرسشهای متداول
RCE چیست؟
RCE یا Remote Code Execution نوعی آسیبپذیری است که میتواند به مهاجم اجازه دهد از راه دور کد یا دستور دلخواه خود را روی سیستم هدف اجرا کند.
آیا RCE به معنی هک کامل سرور است؟
نه لزوماً. سطح دسترسی مهاجم به دسترسی حسابی که کد با آن اجرا میشود بستگی دارد. اگر سرویس محدود باشد، دامنه دسترسی مهاجم نیز میتواند محدودتر باشد.
CVE-2026-60004 چیست؟
CVE-2026-60004 یک آسیبپذیری بحرانی RCE در Gitea است که طبق Advisory رسمی، نسخههای 1.17 تا قبل از 1.27.1 را تحت تأثیر قرار میدهد و در نسخه 1.27.1 اصلاح شده است.
آیا CVE-2026-60004 واقعاً مورد سوءاستفاده قرار گرفته است؟
بله. CISA آن را به فهرست KEV اضافه کرده و گزارشهایی از سوءاستفاده واقعی از این آسیبپذیری منتشر شده است.
آیا غیرفعال کردن ثبتنام عمومی مشکل را حل میکند؟
خیر. این کار فقط یکی از مسیرهای دستیابی به دسترسی لازم را محدود میکند. نصب نسخه اصلاحشده همچنان ضروری است.
کدام نسخه Gitea این آسیبپذیری را برطرف میکند؟
طبق Advisory رسمی Gitea، نسخه 1.27.1 شامل اصلاح CVE-2026-60004 است.
آیا بعد از Patch هنوز احتمال هک وجود دارد؟
اگر مهاجم قبل از Patch وارد سیستم شده باشد، ممکن است مکانیزم ماندگاری ایجاد کرده باشد. بنابراین در نمونههای مشکوک باید علاوه بر Patch، بررسی نفوذ نیز انجام شود.
منابع:
- CISA — اضافه شدن CVE-2026-60004 به فهرست KEV
- The Hacker News — گزارش سوءاستفاده فعال از آسیبپذیری Gitea
- فهرست رسمی CISA Known Exploited Vulnerabilities