Gogs is an open source self-hosted Git service. In version 0.13.3 and prior, Gogs’ 2FA recovery code validation does not scope codes by user, enabling cross-account bypass. If an attacker knows a victim’s username and password, they can use any unused recovery code (e.g., from their own account) to bypass the victim’s 2FA. This enables full account takeover and renders 2FA ineffective in all environments where it's enabled.. This issue has been patched in versions 0.13.4 and 0.14.0+dev.
Gogs versions 0.13.3 and prior contain a critical 2FA bypass vulnerability where recovery codes are not properly scoped to individual users, allowing attackers with valid credentials to use any recovery code to bypass two-factor authentication. This completely undermines 2FA security and enables full account takeover. Organizations running vulnerable Gogs instances must immediately upgrade to version 0.13.4 or 0.14.0+dev to restore authentication security.
IMMEDIATE ACTIONS:
1. Identify all Gogs instances in your environment and verify their version numbers
2. Disable 2FA recovery code functionality immediately if upgrade cannot be completed within 24 hours
3. Force password reset for all users with 2FA enabled
4. Review access logs for suspicious recovery code usage patterns
PATCHING:
1. Upgrade Gogs to version 0.13.4 or 0.14.0+dev immediately
2. Test upgrade in non-production environment first
3. Verify 2FA functionality post-upgrade
COMPENSATING CONTROLS (if immediate patching not possible):
1. Implement IP whitelisting for Gogs access
2. Enable audit logging for all authentication attempts
3. Monitor for multiple failed 2FA attempts from different IPs
4. Implement rate limiting on login endpoints
5. Require hardware security keys instead of recovery codes where possible
DETECTION:
1. Search logs for recovery code validation events with mismatched usernames
2. Alert on successful 2FA bypass followed by account modifications
3. Monitor for recovery code reuse across multiple accounts
4. Track failed 2FA attempts followed by successful login with recovery code
الإجراءات الفورية:
1. حدد جميع نسخ Gogs في بيئتك وتحقق من أرقام إصداراتها
2. عطّل وظيفة رموز استرجاع المصادقة الثنائية فوراً إذا لم يكن يمكن إكمال الترقية خلال 24 ساعة
3. فرض إعادة تعيين كلمة المرور لجميع المستخدمين الذين لديهم المصادقة الثنائية مفعلة
4. راجع سجلات الوصول للأنماط المريبة في استخدام رموز الاسترجاع
التصحيح:
1. ترقية Gogs إلى الإصدار 0.13.4 أو 0.14.0+dev فوراً
2. اختبر الترقية في بيئة غير الإنتاج أولاً
3. تحقق من وظيفة المصادقة الثنائية بعد الترقية
الضوابط البديلة (إذا لم تكن الترقية الفورية ممكنة):
1. تطبيق قائمة بيضاء IP لوصول Gogs
2. تفعيل تسجيل التدقيق لجميع محاولات المصادقة
3. مراقبة محاولات المصادقة الثنائية الفاشلة المتعددة من عناوين IP مختلفة
4. تطبيق تحديد معدل على نقاط نهاية تسجيل الدخول
5. طلب مفاتيح الأمان الصلبة بدلاً من رموز الاسترجاع حيث أمكن
الكشف:
1. ابحث في السجلات عن أحداث التحقق من رموز الاسترجاع مع أسماء مستخدمين غير متطابقة
2. تنبيه عند تجاوز المصادقة الثنائية الناجح متبوعاً بتعديلات الحساب
3. مراقبة إعادة استخدام رموز الاسترجاع عبر حسابات متعددة
4. تتبع محاولات المصادقة الثنائية الفاشلة متبوعة بتسجيل دخول ناجح برمز استرجاع