PHP FastCGI Process Manager (FPM) Buffer Overflow Vulnerability — In some versions of PHP in certain configurations of FPM setup, it is possible to cause FPM module to write past allocated buffers allowing the possibility of remote code execution.
CVE-2019-11043 is a critical buffer overflow vulnerability in PHP's FastCGI Process Manager (FPM) that allows remote code execution without authentication. When PHP-FPM is configured with specific nginx settings (particularly using PATH_INFO), attackers can craft malicious HTTP requests to overwrite memory buffers and execute arbitrary code. A public exploit (phuip-fpizdam) has been available since 2019, making this vulnerability actively exploitable. Organizations running vulnerable PHP-FPM configurations face complete server compromise.
IMMEDIATE ACTIONS (within 24 hours):
1. Identify all servers running PHP-FPM with nginx using: grep -r 'fastcgi_split_path_info' /etc/nginx/
2. Check PHP version: php-fpm --version (vulnerable: PHP 7.1.x < 7.1.33, 7.2.x < 7.2.24, 7.3.x < 7.3.11)
3. Temporarily disable PATH_INFO processing in nginx if not required
PATCHING GUIDANCE:
1. Upgrade PHP to patched versions: 7.1.33+, 7.2.24+, or 7.3.11+
2. For PHP 5.x and 7.0.x (EOL): migrate to supported versions immediately
3. Apply OS vendor patches (RHEL, Ubuntu, Debian have backported fixes)
COMPENSATING CONTROLS:
1. Remove or modify vulnerable nginx configuration:
- Remove: fastcgi_split_path_info ^(.+\.php)(/.*)$;
- Add: fastcgi_param PATH_INFO $fastcgi_path_info; only if required
2. Add nginx rule to block requests with path traversal: if ($request_uri ~* "\.php/") { return 403; }
3. Deploy WAF rules to detect phuip-fpizdam exploit patterns
4. Implement network segmentation to restrict direct internet access to PHP-FPM ports
5. Enable PHP-FPM process isolation using chroot or containers
DETECTION RULES:
1. Monitor for HTTP requests containing multiple path separators before .php extension
2. SIEM alert: Unusual PHP-FPM process spawning or privilege escalation
3. IDS signature: Requests matching pattern '*.php/*' with abnormal query strings
4. Monitor /var/log/php-fpm/ for segmentation faults or unexpected crashes
5. Deploy Suricata/Snort rule: alert http any any -> $HTTP_SERVERS any (msg:"CVE-2019-11043 PHP-FPM RCE Attempt"; content:".php"; pcre:"/\.php\/[^\s]*\?[^\s]*=/i"; sid:2019110430;)
الإجراءات الفورية (خلال 24 ساعة):
1. تحديد جميع الخوادم التي تشغل PHP-FPM مع nginx باستخدام: grep -r 'fastcgi_split_path_info' /etc/nginx/
2. التحقق من إصدار PHP: php-fpm --version (الإصدارات المعرضة للخطر: PHP 7.1.x < 7.1.33، 7.2.x < 7.2.24، 7.3.x < 7.3.11)
3. تعطيل معالجة PATH_INFO في nginx مؤقتاً إذا لم تكن مطلوبة
إرشادات التصحيح:
1. ترقية PHP إلى الإصدارات المُصححة: 7.1.33+ أو 7.2.24+ أو 7.3.11+
2. بالنسبة لـ PHP 5.x و7.0.x (منتهية الدعم): الترحيل فوراً إلى إصدارات مدعومة
3. تطبيق تصحيحات موردي نظام التشغيل (RHEL وUbuntu وDebian لديهم إصلاحات مُدمجة)
ضوابط التعويض:
1. إزالة أو تعديل تكوين nginx المعرض للخطر
2. إضافة قاعدة nginx لحظر الطلبات التي تحتوي على اجتياز المسار
3. نشر قواعد WAF للكشف عن أنماط استغلال phuip-fpizdam
4. تنفيذ تجزئة الشبكة لتقييد الوصول المباشر عبر الإنترنت إلى منافذ PHP-FPM
5. تمكين عزل عمليات PHP-FPM باستخدام chroot أو الحاويات
قواعد الكشف:
1. مراقبة طلبات HTTP التي تحتوي على فواصل مسار متعددة قبل امتداد .php
2. تنبيه SIEM: توليد عمليات PHP-FPM غير عادية أو تصعيد الامتيازات
3. توقيع IDS: الطلبات المطابقة لنمط '*.php/*' مع سلاسل استعلام غير طبيعية
4. مراقبة سجلات PHP-FPM بحثاً عن أخطاء التجزئة أو الأعطال غير المتوقعة