AzuraCast is a self-hosted, all-in-one web radio management suite. Prior to version 0.23.6, the ApplyXForwarded middleware unconditionally trusts the client-supplied X-Forwarded-Host HTTP header with no trusted proxy allowlist. An unauthenticated attacker can poison the password reset URL sent to any user by injecting this header when triggering the forgot-password flow. When the victim clicks the poisoned link, their reset token is exfiltrated to the attacker's server. The attacker then uses the token on the real instance to reset the victim's password and destroy their 2FA configuration, achieving full account takeover. This issue has been patched in version 0.23.6.
AzuraCast versions prior to 0.23.6 contain a critical HTTP header injection vulnerability in the ApplyXForwarded middleware that allows unauthenticated attackers to perform account takeover. By poisoning the X-Forwarded-Host header during password reset requests, attackers can redirect password reset tokens to attacker-controlled servers, enabling full account compromise including 2FA bypass. This vulnerability is actively exploitable and affects all self-hosted AzuraCast deployments without proper proxy configuration.
IMMEDIATE ACTIONS:
1. Identify all AzuraCast instances in your environment and verify their version numbers
2. Implement network-level controls to restrict X-Forwarded-Host header acceptance from untrusted sources
3. Disable password reset functionality temporarily if patching cannot be completed within 24 hours
4. Review access logs for suspicious X-Forwarded-Host header values and password reset requests from unusual IP addresses
PATCHING:
1. Upgrade AzuraCast to version 0.23.6 or later immediately
2. Follow official upgrade documentation at https://docs.azuracast.com/en/getting-started/updates
3. Test password reset functionality after patching
4. Verify 2FA settings remain intact post-upgrade
COMPENSATING CONTROLS (if immediate patching not possible):
1. Configure reverse proxy (nginx/Apache) to validate and whitelist X-Forwarded-Host headers
2. Implement WAF rules to block requests with suspicious X-Forwarded-Host values
3. Enable request logging and alerting for X-Forwarded-Host header anomalies
4. Enforce strong password policies and mandatory 2FA for all administrative accounts
5. Implement email verification for password reset requests with user confirmation
DETECTION RULES:
1. Alert on password reset requests with X-Forwarded-Host headers pointing to external domains
2. Monitor for multiple failed password reset attempts from single IP address
3. Track successful password resets followed by 2FA configuration changes
4. Log all requests containing X-Forwarded-Host headers not matching expected domain patterns
5. Implement SIEM rules: (X-Forwarded-Host != expected_domain) AND (password_reset_triggered OR token_generated)
الإجراءات الفورية:
1. حدد جميع نوى AzuraCast في بيئتك وتحقق من أرقام إصداراتها
2. طبق عناصر تحكم على مستوى الشبكة لتقييد قبول رأس X-Forwarded-Host من المصادر غير الموثوقة
3. عطل وظيفة إعادة تعيين كلمة المرور مؤقتاً إذا لم يتمكن من إكمال التصحيح في غضون 24 ساعة
4. راجع سجلات الوصول للقيم المريبة في رأس X-Forwarded-Host وطلبات إعادة تعيين كلمة المرور من عناوين IP غير المعتادة
التصحيح:
1. قم بترقية AzuraCast إلى الإصدار 0.23.6 أو أحدث على الفور
2. اتبع التوثيق الرسمي للترقية على https://docs.azuracast.com/en/getting-started/updates
3. اختبر وظيفة إعادة تعيين كلمة المرور بعد التصحيح
4. تحقق من بقاء إعدادات المصادقة الثنائية سليمة بعد الترقية
عناصر التحكم البديلة (إذا لم يكن التصحيح الفوري ممكناً):
1. قم بتكوين وكيل عكسي (nginx/Apache) للتحقق من صحة وإدراج رؤوس X-Forwarded-Host في القائمة البيضاء
2. طبق قواعد WAF لحظر الطلبات برؤوس X-Forwarded-Host المريبة
3. فعّل تسجيل الطلبات والتنبيهات لشذوذ رأس X-Forwarded-Host
4. فرض سياسات كلمات مرور قوية والمصادقة الثنائية الإلزامية لجميع الحسابات الإدارية
5. طبق التحقق من البريد الإلكتروني لطلبات إعادة تعيين كلمة المرور مع تأكيد المستخدم
قواعد الكشف:
1. تنبيه على طلبات إعادة تعيين كلمة المرور برؤوس X-Forwarded-Host تشير إلى نطاقات خارجية
2. مراقبة محاولات إعادة تعيين كلمة المرور الفاشلة المتعددة من عنوان IP واحد
3. تتبع إعادة تعيين كلمة المرور الناجحة متبوعة بتغييرات تكوين المصادقة الثنائية
4. سجل جميع الطلبات التي تحتوي على رؤوس X-Forwarded-Host غير المطابقة لأنماط النطاق المتوقعة
5. طبق قواعد SIEM: (X-Forwarded-Host != expected_domain) AND (password_reset_triggered OR token_generated)