Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group
). Prior to versions 3.4.1, 3.3.1, and 2.6.11, when the security mode is enabled, modifying the DATA Submessage within an
SPDP packet sent by a publisher causes an Out-Of-Memory (OOM) condition, resulting in remote termination of Fast-DDS. If t
he fields of PID_IDENTITY_TOKEN or PID_PERMISSION_TOKEN in the DATA Submessage — specifically by tampering with the length
field in readBinaryPropertySeq — are modified, an integer overflow occurs, leading to an OOM during the resize operation.
Versions 3.4.1, 3.3.1, and 2.6.11 patch the issue.
Fast DDS versions prior to 3.4.1, 3.3.1, and 2.6.11 contain a critical integer overflow vulnerability in security-enabled deployments that allows remote attackers to trigger Out-Of-Memory conditions by tampering with token length fields in SPDP packets, causing denial of service. This vulnerability affects real-time distributed systems commonly used in industrial IoT, autonomous systems, and critical infrastructure. Organizations using Fast DDS in security-enabled mode should prioritize immediate patching to prevent service disruption.
IMMEDIATE ACTIONS:
1. Identify all Fast DDS deployments in your environment, particularly those with security mode enabled
2. Assess network exposure — determine if SPDP packets can reach affected systems from untrusted networks
3. Implement network segmentation to restrict SPDP traffic (UDP port 7400-7409) to trusted sources only
PATCHING GUIDANCE:
1. Upgrade Fast DDS to version 3.4.1, 3.3.1, or 2.6.11 immediately
2. For Debian systems (11, 12, 13), update via: apt-get update && apt-get upgrade fast-dds
3. Test patches in non-production environments first, particularly for SCADA/ICS systems
4. Coordinate with system owners for maintenance windows to minimize downtime
COMPENSATING CONTROLS (if immediate patching not possible):
1. Disable DDS security mode if operationally feasible (reduces attack surface)
2. Implement firewall rules to block SPDP traffic from external networks
3. Monitor for OOM conditions and process crashes on DDS nodes
4. Implement rate limiting on SPDP packet processing
5. Deploy network IDS/IPS rules to detect malformed SPDP packets with suspicious token length fields
DETECTION RULES:
1. Monitor system logs for Fast DDS process crashes with OOM errors
2. Alert on unusual memory consumption spikes in DDS processes
3. Network detection: Flag SPDP packets with PID_IDENTITY_TOKEN or PID_PERMISSION_TOKEN length fields exceeding normal ranges (typically <1024 bytes)
4. Monitor for repeated connection attempts with malformed security tokens
5. Track DDS participant discovery failures and reconnection storms
الإجراءات الفورية:
1. حدد جميع نشرات Fast DDS في بيئتك، خاصة تلك التي يكون وضع الأمان فيها مفعلاً
2. قيّم التعرض للشبكة — حدد ما إذا كان يمكن للحزم SPDP الوصول إلى الأنظمة المتأثرة من الشبكات غير الموثوقة
3. طبّق تقسيم الشبكة لتقييد حركة SPDP (منافذ UDP 7400-7409) إلى المصادر الموثوقة فقط
إرشادات التصحيح:
1. قم بترقية Fast DDS إلى الإصدار 3.4.1 أو 3.3.1 أو 2.6.11 على الفور
2. لأنظمة Debian (11، 12، 13)، قم بالتحديث عبر: apt-get update && apt-get upgrade fast-dds
3. اختبر التصحيحات في بيئات غير الإنتاج أولاً، خاصة لأنظمة SCADA/ICS
4. تنسيق مع مالكي الأنظمة لنوافذ الصيانة لتقليل وقت التوقف
الضوابط البديلة (إذا لم يكن التصحيح الفوري ممكناً):
1. عطّل وضع أمان DDS إذا كان ذلك ممكناً من الناحية التشغيلية
2. طبّق قواعد جدار الحماية لحظر حركة SPDP من الشبكات الخارجية
3. راقب حالات نقص الذاكرة وأعطال العمليات على عقد DDS
4. طبّق تحديد معدل معالجة حزم SPDP
5. نشّر قواعد IDS/IPS للشبكة للكشف عن حزم SPDP المشوهة بحقول طول رموز مريبة
قواعد الكشف:
1. راقب سجلات النظام لأعطال عملية Fast DDS مع أخطاء نقص الذاكرة
2. تنبيه على ارتفاعات استهلاك الذاكرة غير العادية في عمليات DDS
3. كشف الشبكة: علّم حزم SPDP بحقول طول PID_IDENTITY_TOKEN أو PID_PERMISSION_TOKEN التي تتجاوز النطاقات العادية
4. راقب محاولات الاتصال المتكررة برموز أمان مشوهة
5. تتبع فشل اكتشاف مشاركي DDS وعواصف إعادة الاتصال