OpenTelemetry eBPF Instrumentation provides eBPF instrumentation based on the OpenTelemetry standard. Prior to version 0.9.0, the custom CappedConcurrentHashMap introduced for Java TLS state tracking never removes keys from its insertion-order queue when entries are deleted. In long-running instrumented JVMs, repeated connection churn can therefore grow the queue without bound and exhaust heap memory. This issue has been patched in version 0.9.0.
OpenTelemetry eBPF Instrumentation versions prior to 0.9.0 contain a memory leak vulnerability in the CappedConcurrentHashMap used for Java TLS state tracking. The vulnerability allows repeated connection churn to exhaust heap memory in long-running JVMs, potentially causing denial of service. While the CVSS score is moderate (5.1), the practical impact in production environments monitoring high-traffic applications could be significant.
Immediate Actions:
1. Identify all Java applications instrumented with OpenTelemetry eBPF Instrumentation versions < 0.9.0
2. Monitor heap memory usage patterns in affected JVMs for signs of unbounded growth
3. Implement connection rate limiting and connection pooling to reduce connection churn
Patching Guidance:
1. Upgrade OpenTelemetry eBPF Instrumentation to version 0.9.0 or later immediately
2. Test patches in non-production environments before deployment
3. Schedule maintenance windows for production upgrades
Compensating Controls (if immediate patching not possible):
1. Implement JVM heap size monitoring with automated alerts at 80% threshold
2. Configure JVM restart policies to trigger on OutOfMemoryError
3. Reduce instrumentation scope to only critical TLS connections
4. Implement connection pooling with maximum connection limits
5. Deploy circuit breakers to prevent connection storms
Detection Rules:
1. Monitor for repeated java.lang.OutOfMemoryError exceptions in application logs
2. Alert on sustained heap memory growth without corresponding application load increase
3. Track GC pause times and frequency increases
4. Monitor CappedConcurrentHashMap queue size metrics if exposed
الإجراءات الفورية:
1. تحديد جميع تطبيقات Java المزودة بـ OpenTelemetry eBPF Instrumentation الإصدارات < 0.9.0
2. مراقبة أنماط استخدام ذاكرة الكومة في أجهزة JVM المتأثرة للبحث عن علامات النمو غير المحدود
3. تنفيذ تحديد معدل الاتصال وتجميع الاتصالات لتقليل تغيير الاتصالات
إرشادات التصحيح:
1. ترقية OpenTelemetry eBPF Instrumentation إلى الإصدار 0.9.0 أو أحدث فوراً
2. اختبار التصحيحات في بيئات غير الإنتاج قبل النشر
3. جدولة نوافذ الصيانة لترقيات الإنتاج
الضوابط التعويضية (إذا لم يكن التصحيح الفوري ممكناً):
1. تنفيذ مراقبة حجم كومة JVM مع تنبيهات آلية عند عتبة 80%
2. تكوين سياسات إعادة تشغيل JVM لتفعيل OutOfMemoryError
3. تقليل نطاق الأداة إلى اتصالات TLS الحرجة فقط
4. تنفيذ تجميع الاتصالات مع حدود الاتصال القصوى
5. نشر قواطع الدوائر لمنع عواصف الاتصال
قواعد الكشف:
1. مراقبة استثناءات java.lang.OutOfMemoryError المتكررة في سجلات التطبيق
2. التنبيه على نمو ذاكرة الكومة المستمر دون زيادة حمل التطبيق المقابلة
3. تتبع أوقات وتكرار توقف GC
4. مراقبة مقاييس حجم قائمة CappedConcurrentHashMap إن كانت معروضة