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 a heap buffer overflow, resulting in remote termination of Fast-DDS. If the fields
of `PID_IDENTITY_TOKEN` or `PID_PERMISSIONS_TOKEN` in the DATA Submessage are tampered with — specially `readOctetVector`
reads an unchecked `vecsize` that is propagated unchanged into `readData` as the `length` parameter — the attacker-contro
lled `vecsize` can trigger a 32-bit integer overflow during the `length` calculation. That overflow can cause large alloca
tion attempt that quickly leads to OOM, enabling a remotely-triggerable denial-of-service and remote process termination.
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 heap buffer overflow vulnerability in security-enabled mode when processing malformed SPDP packets. An attacker can trigger a 32-bit integer overflow by tampering with PID_IDENTITY_TOKEN or PID_PERMISSIONS_TOKEN fields, causing out-of-memory conditions and remote process termination. This vulnerability affects distributed real-time systems commonly used in industrial IoT, autonomous systems, and critical infrastructure.
IMMEDIATE ACTIONS:
1. Identify all systems running Fast DDS versions <3.4.1, <3.3.1, or <2.6.11 using network scanning and software inventory tools
2. Disable or isolate systems with security mode enabled until patching is complete
3. Implement network segmentation to restrict SPDP packet sources to trusted publishers only
4. Monitor for abnormal process terminations and out-of-memory errors in DDS applications
PATCHING GUIDANCE:
1. Upgrade Fast DDS to version 3.4.1, 3.3.1, or 2.6.11 immediately
2. Test patches in non-production environments first
3. Coordinate patching with system owners to minimize downtime
4. Verify patch installation by checking version numbers post-deployment
COMPENSATING CONTROLS (if patching delayed):
1. Implement firewall rules to restrict SPDP multicast traffic (UDP port 7400-7410) to authorized networks only
2. Deploy DDS traffic inspection at network boundaries to detect malformed packets
3. Implement application-level monitoring with automatic restart capabilities for DDS processes
4. Disable DDS security mode if operationally feasible (reduces attack surface)
DETECTION RULES:
1. Monitor for SPDP packets with abnormally large vecsize values in DATA Submessages
2. Alert on Fast DDS process crashes with OOM (Out of Memory) errors
3. Track failed DDS authentication attempts from unexpected sources
4. Monitor for repeated connection attempts from single source IPs to DDS ports
الإجراءات الفورية:
1. تحديد جميع الأنظمة التي تقوم بتشغيل إصدارات Fast DDS <3.4.1 أو <3.3.1 أو <2.6.11 باستخدام أدوات المسح والمخزون
2. تعطيل أو عزل الأنظمة مع تفعيل وضع الأمان حتى اكتمال التصحيح
3. تنفيذ تقسيم الشبكة لتقييد مصادر حزم SPDP للناشرين الموثوقين فقط
4. مراقبة إنهاء العمليات غير الطبيعية وأخطاء نفاد الذاكرة في تطبيقات DDS
إرشادات التصحيح:
1. ترقية Fast DDS إلى الإصدار 3.4.1 أو 3.3.1 أو 2.6.11 فوراً
2. اختبار التصحيحات في بيئات غير الإنتاج أولاً
3. تنسيق التصحيح مع مالكي الأنظمة لتقليل وقت التوقف
4. التحقق من تثبيت التصحيح بفحص أرقام الإصدارات بعد النشر
الضوابط البديلة (إذا تأخر التصحيح):
1. تنفيذ قواعد جدار الحماية لتقييد حركة SPDP متعددة الإرسال (منفذ UDP 7400-7410) للشبكات المصرح بها فقط
2. نشر فحص حركة DDS على حدود الشبكة للكشف عن الحزم المشوهة
3. تنفيذ مراقبة على مستوى التطبيق مع قدرات إعادة التشغيل التلقائي لعمليات DDS
4. تعطيل وضع أمان DDS إذا كان ممكناً من الناحية التشغيلية
قواعد الكشف:
1. مراقبة حزم SPDP بقيم vecsize كبيرة بشكل غير طبيعي في DATA Submessages
2. تنبيه عند توقف عملية Fast DDS مع أخطاء OOM
3. تتبع محاولات المصادقة الفاشلة في DDS من مصادر غير متوقعة
4. مراقبة محاولات الاتصال المتكررة من عناوين IP واحدة إلى منافذ DDS