Undefined behavior may result due to a race condition leading to a use-after-free violation. If BIND receives an incoming DNS message signed with SIG(0), it begins work to validate that signature. If, during that validation, the "recursive-clients" limit is reached (as would occur during a query flood), and that same DNS message is discarded per the limit, there is a brief window of time while the SIG(0) validation may attempt to read the now-discarded DNS message.
This issue affects BIND 9 versions 9.20.0 through 9.20.22, 9.21.0 through 9.21.21, and 9.20.9-S1 through 9.20.22-S1.
BIND 9 versions 9.18.28 through 9.18.49 and 9.18.28-S1 through 9.18.49-S1 are NOT affected.
A race condition in BIND 9 DNS server versions 9.20.0-9.20.22, 9.21.0-9.21.21, and 9.20.9-S1-9.20.22-S1 causes use-after-free vulnerability when processing SIG(0) signed DNS messages during recursive-clients limit exhaustion. This can lead to denial of service or potential code execution during DNS query floods. Immediate patching is critical for organizations running affected BIND versions.
IMMEDIATE ACTIONS:
1. Identify all BIND 9 instances running versions 9.20.0-9.20.22, 9.21.0-9.21.21, or 9.20.9-S1-9.20.22-S1 using 'named -v'
2. Isolate affected DNS servers from direct internet exposure if possible
3. Implement rate limiting on recursive queries to reduce recursive-clients exhaustion risk
PATCHING:
1. Upgrade to BIND 9.20.23 or later (9.20.x series)
2. Upgrade to BIND 9.21.22 or later (9.21.x series)
3. Upgrade to BIND 9.20.23-S1 or later (9.20.x-S1 series)
4. BIND 9.18.x versions are NOT affected; no action required
COMPENSATING CONTROLS (if immediate patching impossible):
1. Implement strict rate limiting: 'recursive-clients' set to conservative value (e.g., 100-500)
2. Enable query logging to detect SIG(0) validation patterns
3. Deploy DDoS mitigation at network edge to prevent query floods
4. Monitor DNS query patterns for anomalies
5. Implement firewall rules to restrict DNS queries to authorized sources
DETECTION:
1. Monitor BIND logs for 'recursive-clients limit reached' messages
2. Alert on sudden increases in SIG(0) signed queries
3. Track DNS query rates exceeding baseline by >300%
4. Monitor for BIND process crashes or restarts
5. Implement IDS signatures for malformed SIG(0) queries
الإجراءات الفورية:
1. تحديد جميع مثيلات BIND 9 التي تشغل الإصدارات المتأثرة باستخدام 'named -v'
2. عزل خوادم DNS المتأثرة عن التعرض المباشر للإنترنت إن أمكن
3. تطبيق تحديد معدل على الاستعلامات المتكررة لتقليل خطر استنزاف العملاء المتكررين
التصحيح:
1. الترقية إلى BIND 9.20.23 أو أحدث (سلسلة 9.20.x)
2. الترقية إلى BIND 9.21.22 أو أحدث (سلسلة 9.21.x)
3. الترقية إلى BIND 9.20.23-S1 أو أحدث (سلسلة 9.20.x-S1)
4. إصدارات BIND 9.18.x غير متأثرة؛ لا يلزم اتخاذ إجراء
الضوابط البديلة (إذا كان التصحيح الفوري مستحيلاً):
1. تطبيق تحديد معدل صارم: تعيين 'recursive-clients' إلى قيمة محافظة
2. تفعيل تسجيل الاستعلامات لكشف أنماط التحقق من SIG(0)
3. نشر تخفيف DDoS على حافة الشبكة
4. مراقبة أنماط استعلامات DNS للكشف عن الشذوذ
5. تطبيق قواعد جدار الحماية لتقييد استعلامات DNS
الكشف:
1. مراقبة سجلات BIND للرسائل المتعلقة بحد العملاء المتكررين
2. التنبيه على الزيادات المفاجئة في الاستعلامات الموقعة بـ SIG(0)
3. تتبع معدلات استعلامات DNS التي تتجاوز الخط الأساسي بنسبة >300%
4. مراقبة أعطال أو إعادة تشغيل عملية BIND
5. تطبيق توقيعات IDS للاستعلامات المشوهة SIG(0)