نقص امنیتی Gitea؛ ایمیجهای خصوصی ۴ سال قابلدانلود بودن
خلاصهٔ کاملتر
یک آسیبپذیری بحرانی در Gitea (پلتفرم متنباز و self-hosted گیت) به هر کسی روی اینترنت اجازه میداد بدون حساب، رمز یا هیچ اعتبارنامهای، ایمیجهای کانتینری خصوصی را از نمونههای آسیبپذیر دانلود کنه. این نقص که حالا با شناسهی CVE-2026-27771 ثبت شده، نزدیک چهار سال کشفنشده موند و طبق برآورد بیش از ۳۰ هزار استقرار در بیش از ۳۰ کشور را تحت تأثیر قرار داده. شرکت امنیتی Noscope آن را با یک ایجنت تست نفوذ خودکار پیدا و پیش از انتشار به تیم Gitea گزارش کرد.
چرا این مهمه؟ چون یک ایمیج کانتینری فقط کد قابلاجرا نیست؛ یک عکس کامل از محیط اجراست: کد منبع، وابستگیها، فایلهای پیکربندی و اغلب چیزهایی که اصلاً نباید بستهبندی میشدن، مثل اعتبارنامهی دیتابیس، کلیدهای API، آدرس سرویسهای داخلی و گواهیهای TLS. عملاً نقشهی کاملی از نحوهی سیمکشی محیط production.
ریشهی مشکل در رجیستری کانتینر داخلی Gitea بود: علامت «خصوصی» روی مخزن کانتینر، محدودیت دسترسی را اعمال نمیکرد و رجیستری ایمیجهای خصوصی را مثل عمومی در دسترس میذاشت. تنظیمات نصب پیشفرض برای فعالشدن این افشا کافی بود. نکتهی نگرانکننده اینه که یک issue عمومی در گیتهاب از آوریل ۲۰۲۳ همین رفتار را گزارش کرده بود، اما آن زمان با برچسب «not-a-bug» بسته شده بود.
مقیاس ماجرا بزرگه: Noscope با Shodan حدود ۳۴ هزار میزبان منطبق پیدا کرد و در یک نمونهی ۱۰۰تایی، ۹۳٪ آسیبپذیر بودن. حدود ۵۲٪ روی پلتفرمهای ابری بزرگ اجرا میشدن، یعنی زیرساخت production فعال. Forgejo (فورک جامعهمحور Gitea) هم همین پیادهسازی آسیبپذیر را داره.
اقدام فوری، ارتقا به Gitea نسخهی ۱.۲۶.۲ است. برای کسانی که فعلاً نمیتونن وصله کنن، راهحل موقت اینه:
[service]
REQUIRE_SIGNIN_VIEW = trueاین گزینه قبل از هر دسترسی، احراز هویت را اجباری میکنه (هرچند دسترسی به ایمیجهای عمومی عمدی را هم میبنده). صرفنظر از وصله، تیمهای امنیتی باید لاگهای دسترسی رجیستری را برای دانلودهای غیرمجاز تا جای ممکن بررسی کنن، چون پنجرهی آسیبپذیری حدود چهار سال باز بوده.
نکات کلیدی:
- CVE-2026-27771 اجازه میداد ایمیجهای کانتینری «خصوصی» Gitea بدون احراز هویت دانلود بشن
- نقص حدود چهار سال باز بود و بیش از ۳۰ هزار استقرار را تحت تأثیر قرار داد
- Forgejo هم آسیبپذیره؛ همان رجیستری کانتینر را دارن
- راهحل: ارتقا به نسخهی ۱.۲۶.۲ و در صورت تأخیر، فعالکردن REQUIRE_SIGNIN_VIEW




