
php2shell (CVE-2026-109618 / CVE-2026-109619) के लिए प्रूफ-ऑफ-कॉन्सेप्ट (PoC) एक्सप्लॉइट, जो कमज़ोर PHP वातावरणों में रिमोट कोड एक्ज़िक्यूशन का प्रदर्शन करता है। केवल सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए।
गंभीर सलाह (CVSS v4.0: 9.2 - गंभीर): 20 अक्टूबर को, PHP कोर में दो प्री-ऑथ रिमोट कोड एक्ज़ीक्यूशन (RCE) खामियों का विवरण समन्वित प्रकटीकरण से पहले ऑनलाइन लीक हो गया। इसका शोषण वेब सर्वर से सीधे मनमाने कमांड निष्पादन की अनुमति देता है।
php2shell दो गंभीर कमज़ोरियों (CVE-2026-109618 और CVE-2026-109619) को संदर्भित करता है जो PHP कोर कार्यक्षमता को प्रभावित करती हैं। मुख्य प्रदर्शित वेक्टर PHP कोर सेशन अपलोड प्रगति तंत्र में एक हीप यूज़-आफ़्टर-फ़्री (UAF) है जो मनमाने कोड निष्पादन (zend_call_function / system()) की ओर ले जाता है।
PHP का अपलोड प्रगति हैंडलर (ext/session/session.c में php_session_rfc1867_callback) दो कच्चे zval * बकेट पॉइंटर (post_bytes_processed और current_file_bytes_processed) को सीधे लाइव HashTable संरचनाओं में संग्रहीत करता है।
अनुरोध प्रसंस्करण के दौरान:
POST अनुरोध डिफ़ॉल्ट कॉन्फ़िगरेशन मानों (session.upload_progress.enabled = 1) के साथ प्रगति ट्रैकिंग सक्रिय करता है।zend_hash_update() डिस्ट्रक्टर zval_ptr_dtor का उपयोग करके पिछले डेटा ट्री को नष्ट कर देता है, जिससे मेमोरी ब्लॉक मुक्त हो जाता है।zend_fcall_info और zend_internal_function संरचनाओं की ओर पुनर्निर्देशित किया जाता है।zend_call_function() को कॉल करता है, जिसके परिणामस्वरूप मनमाना सिस्टम कमांड निष्पादन होता है।php-src बिल्ड्स (संस्करण 8.4.4 और 8.2.34 सहित) पर पुष्टि की गई।zval_ptr_dtor और zend_call_function के बीच सिंबल ऑफ़सेट (--syms) का उपयोग करता है।निम्नलिखित तालिका CVE-2026-109618 और CVE-2026-109619 से प्रभावित PHP संस्करणों का सारांश प्रस्तुत करती है, साथ ही उनके समर्थन और पैच स्थितियाँ भी:
| PHP ब्रांच | स्थिति | प्रभावित संस्करण | फ़िक्स्ड / सुरक्षित संस्करण | नोट्स |
|---|---|---|---|---|
| PHP 8.5 | समर्थित (सक्रिय) | < 8.5.12 | 8.5.12 | आपातकालीन सुरक्षा रिलीज़ प्रकाशित |
| PHP 8.4 | समर्थित (सक्रिय) | < 8.4.27 | 8.4.27 | आपातकालीन सुरक्षा रिलीज़ प्रकाशित |
| PHP 8.3 | समर्थित (सक्रिय) | < 8.3.36 | 8.3.36 | आपातकालीन सुरक्षा रिलीज़ प्रकाशित |
| PHP 8.2 | समर्थित (केवल सुरक्षा) | < 8.2.35 | 8.2.35 | आपातकालीन सुरक्षा रिलीज़ प्रकाशित |
| PHP 8.1 | जीवनकाल समाप्त (EOL) | सभी 8.1.x संस्करण | कोई आधिकारिक पैच नहीं (EOL) | session.upload_progress.enabled = Off सेट करें या ELS/distro बैकपोर्ट्स का उपयोग करें |
| PHP 8.0 | जीवनकाल समाप्त (EOL) | सभी 8.0.x संस्करण | कोई आधिकारिक पैच नहीं (EOL) | आधिकारिक समर्थन समाप्त; कॉन्फ़िगरेशन शमन अनिवार्य है |
| PHP 7.x | जीवनकाल समाप्त (EOL) | सभी 7.0 - 7.4 संस्करण | कोई आधिकारिक पैच नहीं (EOL) | कोर ext/session लॉजिक असुरक्षित; तत्काल शमन या अपग्रेड आवश्यक |
| PHP 5.x | जीवनकाल समाप्त (EOL) | 5.4.0+ (RFC1867 प्रगति ट्रैकिंग के साथ) | कोई आधिकारिक पैच नहीं (EOL) | आधिकारिक समर्थन समाप्त; होस्ट को अलग करें या अपलोड प्रगति अक्षम करें |
[!WARNING] PHP 8.1 और पुराने जीवनकाल-समाप्त (EOL) संस्करणों को PHP Foundation से आधिकारिक सुरक्षा पैच प्राप्त नहीं होते। इन वातावरणों के लिए, तुरंत
session.upload_progress.enabled = Offलागू करें या प्रदान किए गए C स्रोत पैच का उपयोग करके स्रोत से PHP को पुनर्निर्मित करें।
php2shell का शोषण आमतौर पर PHP वर्कर प्रक्रियाओं (php-fpm, php-cgi, php-cgi.exe, httpd, apache2) द्वारा सीधे उत्पन्न असामान्य चाइल्ड प्रक्रियाओं के रूप में प्रकट होता है।
PHP वर्कर प्रक्रियाओं द्वारा निम्नलिखित निष्पादित करने पर निगरानी रखें और अलर्ट करें:
/bin/sh, /bin/bash, cmd.exe, powershell.exepython, perlcurl, wget, nc, certutil.exe/dev/tcp/, fsockopen, mkfifowhoami, id, uname -a, ipconfigएंडपॉइंट डिटेक्शन एजेंट के बिना Linux-आधारित वेब वातावरणों के लिए, Florian Roth के मुफ़्त process-watcher जैसे टूल को observe मोड में चलाया जा सकता है ताकि वास्तविक समय में असामान्य चाइल्ड प्रक्रिया निर्माण को चिह्नित किया जा सके।
php.exe, php-cgi.exe)।/tmp, /var/tmp) का निरीक्षण करें।