Discourse is an open source discussion platform. Prior to versions 2025.12.2, 2026.1.1, and 2026.2.0, when the `patreon_webhook_secret` site setting is blank, an attacker can forge valid webhook signatures by computing an HMAC-MD5 with an empty string as the key. Since the request body is known to the sender, the attacker can produce a matching signature and send arbitrary webhook payloads. This allows unauthorized creation, modification, or deletion of Patreon pledge data and triggering patron-to-group synchronization. This vulnerability is patched in versions 2025.12.2, 2026.1.1, and 2026.2.0. The fix rejects webhook requests when the webhook secret is not configured, preventing signature forgery with an empty key. As a workaround, configure the `patreon_webhook_secret` site setting with a strong, non-empty secret value. When the secret is non-empty, an attacker cannot forge valid signatures without knowing the secret.
Discourse versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 contain a critical webhook signature forgery vulnerability when the patreon_webhook_secret setting is blank. Attackers can forge valid HMAC-MD5 signatures using an empty key to send arbitrary Patreon webhook payloads, enabling unauthorized modification of pledge data and patron synchronization. This vulnerability affects community platforms and discussion forums that integrate Patreon without proper webhook secret configuration. Immediate patching or workaround implementation is essential to prevent unauthorized access to patron management systems.
IMMEDIATE ACTIONS:
1. Identify all Discourse instances in your environment and verify current version numbers
2. Check if patreon_webhook_secret site setting is configured (non-empty) in Admin > Settings > Integrations
3. If blank, immediately implement the workaround or schedule emergency patching
PATCHING GUIDANCE:
1. Upgrade to patched versions: 2025.12.2, 2026.1.1, or 2026.2.0 or later
2. Follow Discourse upgrade procedures: backup database, test in staging environment, schedule maintenance window
3. Verify webhook functionality post-upgrade
COMPENSATING CONTROLS (if patching delayed):
1. Configure patreon_webhook_secret with a strong, randomly generated secret (minimum 32 characters)
2. Restrict webhook endpoint access via firewall/WAF to known Patreon IP ranges
3. Implement request logging and monitoring for /webhooks/patreon endpoint
4. Disable Patreon integration temporarily if not actively used
DETECTION RULES:
1. Monitor for POST requests to /webhooks/patreon with suspicious patterns
2. Alert on failed webhook signature validation attempts
3. Track unauthorized changes to patron data or group synchronization events
4. Log all modifications to patreon_webhook_secret setting
الإجراءات الفورية:
1. حدد جميع مثيلات Discourse في بيئتك وتحقق من أرقام الإصدار الحالية
2. تحقق مما إذا تم تكوين إعداد patreon_webhook_secret (غير فارغ) في Admin > Settings > Integrations
3. إذا كان فارغًا، قم فورًا بتنفيذ الحل البديل أو جدولة التصحيح الطارئ
إرشادات التصحيح:
1. قم بالترقية إلى الإصدارات المصححة: 2025.12.2 أو 2026.1.1 أو 2026.2.0 أو أحدث
2. اتبع إجراءات ترقية Discourse: نسخ احتياطي من قاعدة البيانات، اختبار في بيئة التطوير، جدولة نافذة الصيانة
3. تحقق من وظائف webhook بعد الترقية
الضوابط البديلة (إذا تأخر التصحيح):
1. قم بتكوين patreon_webhook_secret بسر قوي وعشوائي (32 حرفًا على الأقل)
2. قيد وصول نقطة نهاية webhook عبر جدار الحماية/WAF إلى نطاقات IP المعروفة من Patreon
3. تنفيذ تسجيل المراقبة لنقطة نهاية /webhooks/patreon
4. تعطيل تكامل Patreon مؤقتًا إذا لم يكن قيد الاستخدام النشط
قواعد الكشف:
1. راقب طلبات POST إلى /webhooks/patreon بأنماط مريبة
2. تنبيهات محاولات التحقق من توقيع webhook الفاشلة
3. تتبع التغييرات غير المصرح بها على بيانات الراعي أو أحداث مزامنة المجموعة
4. تسجيل جميع التعديلات على إعداد patreon_webhook_secret