Nginx UI is a web user interface for the Nginx web server. Prior to version 2.3.4, a user who was disabled by an administrator can use previously issued API tokens for up to the token lifetime. In practice, disabling a compromised account does not actually terminate that user’s access, so an attacker who already stole a JWT can continue reading and modifying protected resources after the account is marked disabled. Since tokens can be used to create new accounts, it is possible the disabled user to maintain the privilege. Version 2.3.4 patches the issue.
Nginx UI versions prior to 2.3.4 contain a critical authentication bypass vulnerability where disabled user accounts can continue accessing the system using previously issued JWT tokens until token expiration. An attacker with a stolen token can maintain unauthorized access to protected resources and potentially create new privileged accounts, effectively circumventing account disablement controls. This vulnerability is particularly dangerous in multi-tenant environments and requires immediate mitigation.
IMMEDIATE ACTIONS:
1. Upgrade Nginx UI to version 2.3.4 or later immediately
2. Audit all active JWT tokens and revoke tokens issued to users who have been disabled in the past 90 days
3. Force re-authentication for all users and invalidate all existing sessions
4. Review audit logs for any API access from disabled accounts since their disablement date
COMPENSATING CONTROLS (if upgrade delayed):
1. Implement token blacklist/revocation mechanism at API gateway level
2. Add JWT token expiration validation at application entry point
3. Monitor for API calls using tokens from disabled user accounts
4. Implement rate limiting and anomaly detection on API endpoints
5. Disable API token functionality entirely until patched
DETECTION RULES:
1. Alert on API requests with JWT tokens from disabled user accounts
2. Monitor for account creation attempts using disabled user API tokens
3. Track token usage patterns for accounts marked as disabled
4. Flag any configuration changes made by disabled accounts
5. Log all token validation failures and disabled account access attempts
الإجراءات الفورية:
1. ترقية Nginx UI إلى الإصدار 2.3.4 أو أحدث فوراً
2. تدقيق جميع رموز JWT النشطة وإلغاء الرموز الصادرة للمستخدمين المعطلين في آخر 90 يوماً
3. فرض إعادة المصادقة لجميع المستخدمين وإلغاء جميع الجلسات الموجودة
4. مراجعة سجلات التدقيق للوصول إلى API من الحسابات المعطلة منذ تاريخ تعطيلها
عناصر التحكم التعويضية (إذا تأخرت الترقية):
1. تنفيذ آلية إلغاء/قائمة سوداء للرموز على مستوى بوابة API
2. إضافة التحقق من انتهاء صلاحية رمز JWT عند نقطة دخول التطبيق
3. مراقبة استدعاءات API باستخدام رموز من حسابات المستخدمين المعطلين
4. تنفيذ تحديد معدل وكشف الشذوذ على نقاط نهاية API
5. تعطيل وظيفة رمز API بالكامل حتى يتم إصلاحها
قواعد الكشف:
1. تنبيه على طلبات API برموز JWT من حسابات المستخدمين المعطلين
2. مراقبة محاولات إنشاء الحساب باستخدام رموز API للمستخدمين المعطلين
3. تتبع أنماط استخدام الرموز للحسابات المعطلة
4. وضع علامة على أي تغييرات في الإعدادات التي تم إجراؤها بواسطة حسابات معطلة
5. تسجيل جميع فشل التحقق من الرموز ومحاولات الوصول من الحسابات المعطلة