Apache Log4j2 Deserialization of Untrusted Data Vulnerability — Apache Log4j2 contains a deserialization of untrusted data vulnerability due to the incomplete fix of CVE-2021-44228, where the Thread Context Lookup Pattern is vulnerable to remote code execution in certain non-default configurations.
CVE-2021-45046 is a critical remote code execution vulnerability in Apache Log4j2 affecting versions before 2.17.0, exploitable through the Thread Context Lookup Pattern in non-default configurations. This represents an incomplete fix to the infamous Log4Shell vulnerability (CVE-2021-44228) and poses severe risk to Saudi organizations running vulnerable Log4j2 instances. Immediate patching is essential as public exploits are available and widely used in active attacks.
IMMEDIATE ACTIONS:
1. Identify all systems running Apache Log4j2 versions before 2.17.0 using vulnerability scanning tools
2. Isolate or restrict network access to affected systems immediately
3. Review logs for exploitation attempts using patterns: ${jndi:, ${ctx:, ${env:, ${sys:
PATCHING:
1. Upgrade Apache Log4j2 to version 2.17.0 or later (2.17.1+ recommended)
2. For Java applications: update log4j-core and log4j-api dependencies
3. Restart all affected applications after patching
4. Verify patch effectiveness by checking Log4j2 version in running processes
COMPENSATING CONTROLS (if immediate patching impossible):
1. Set system property: -Dlog4j2.formatMsgNoLookups=true
2. Set environment variable: LOG4J_FORMAT_MSG_NO_LOOKUPS=true
3. Remove JndiLookup class: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
4. Implement WAF rules to block JNDI lookup patterns in HTTP requests
5. Restrict outbound DNS and network connections from application servers
DETECTION:
1. Monitor logs for: ${jndi:ldap://, ${jndi:rmi://, ${jndi:nis://, ${jndi: dns://
2. Monitor for unexpected child processes spawned by Java applications
3. Alert on outbound connections to unusual LDAP/RMI servers from Java processes
4. Check for suspicious environment variable references in logs
5. Deploy YARA rules targeting Log4j2 exploitation patterns
الإجراءات الفورية:
1. تحديد جميع الأنظمة التي تشغل Apache Log4j2 الإصدارات السابقة للإصدار 2.17.0 باستخدام أدوات المسح
2. عزل أو تقييد الوصول الشبكي للأنظمة المتأثرة فوراً
3. مراجعة السجلات لمحاولات الاستغلال باستخدام الأنماط: ${jndi:, ${ctx:, ${env:, ${sys:
التصحيح:
1. ترقية Apache Log4j2 إلى الإصدار 2.17.0 أو أحدث (يُنصح بـ 2.17.1+)
2. لتطبيقات Java: تحديث تبعيات log4j-core و log4j-api
3. إعادة تشغيل جميع التطبيقات المتأثرة بعد التصحيح
4. التحقق من فعالية التصحيح بفحص إصدار Log4j2 في العمليات قيد التشغيل
الضوابط البديلة (إذا كان التصحيح الفوري مستحيلاً):
1. تعيين خاصية النظام: -Dlog4j2.formatMsgNoLookups=true
2. تعيين متغير البيئة: LOG4J_FORMAT_MSG_NO_LOOKUPS=true
3. إزالة فئة JndiLookup: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
4. تطبيق قواعد WAF لحجب أنماط البحث عن JNDI في طلبات HTTP
5. تقييد الاتصالات الشبكية الصادرة من خوادم التطبيقات
الكشف:
1. مراقبة السجلات عن: ${jndi:ldap://, ${jndi:rmi://, ${jndi:nis://, ${jndi:dns://
2. مراقبة العمليات الفرعية غير المتوقعة التي تنتجها تطبيقات Java
3. تنبيهات الاتصالات الصادرة غير العادية بخوادم LDAP/RMI من عمليات Java
4. فحص مراجع متغيرات البيئة المريبة في السجلات
5. نشر قواعد YARA لاستهداف أنماط استغلال Log4j2