🎧 Listen to this article: English
🌍 Read this in your language: हिंदी · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
ठीक उसी समय जब सिस्टम प्रशासक गंभीर PHP2Shell कमजोरियों के लिए आपातकालीन पैच रोलआउट पूरा कर रहे थे, PHP डेवलपमेंट टीम ने एक और सुरक्षा सलाह (security advisory) जारी की। एक नई पहचानी गई रिमोट कोड निष्पादन खामी मौजूदा इंजन में अनपैच्ड बनी हुई है, जिसके लिए पूरे वेब इन्फ्रास्ट्रक्चर में तत्काल कॉन्फ़िगरेशन समीक्षा की आवश्यकता है।
आज 24 अक्टूबर, 2026 है। पिछले बहत्तर घंटों में, सुरक्षा टीमें 21 अक्टूबर को उजागर की गई दो गंभीर खामियों को पैच करने के लिए तेजी से काम कर रही हैं। अब, CVE-2026-115560 के रूप में ट्रैक किया गया यह नया खुलासा एक अतिरिक्त अटैक सरफ़ेस पेश करता है जिसे आपातकालीन अपडेट्स ने कवर नहीं किया था। यदि आप सर्वर, कंटेनर या शेयर्ड होस्टिंग में प्रोडक्शन में PHP चलाते हैं, तो यह समझना आवश्यक है कि यह खामी कैसे काम करती है और अनुशंसित शमन (mitigations) लागू करना आवश्यक है।
CVE-2026-115560 क्या है?
हाल ही में उजागर हुए इस मुद्दे में PHP का सेशन अपलोड प्रोग्रेस मैकेनिज्म और सेशन कॉन्फ़िगरेशन में रनटाइम समायोजन शामिल हैं।
जब यूज़र्स फ़ाइलें अपलोड करते हैं, तो PHP एक इन-बिल्ट फ़ीचर के माध्यम से रीयल टाइम में ट्रांसफ़र प्रोग्रेस को ट्रैक कर सकता है जिसे सेशन अपलोड प्रोग्रेसकहा जाता है। सक्षम होने पर, PHP आने वाले फ़ाइल ट्रांसफ़र को इंटरसेप्ट करता है और एप्लिकेशन स्क्रिप्ट के निष्पादित होने से पहले प्रोग्रेस डेटा को सीधे यूज़र के सेशन में लिखता है।
सामान्य परिस्थितियों में, यह फ़ीचर सुरक्षित रूप से काम करता है। हालांकि, यह भेद्यता तब सामने आती है जब कोई एप्लिकेशन अपने सेशन सीरियलाइज़ेशन हैंडलर को निष्पादन के दौरान डायनेमिक रूप से बदल देता है। सीरियलाइज़ेशन हैंडलर यह तय करता है कि PHP स्टोरेज के लिए एरेज़ और ऑब्जेक्ट्स को कैसे एनकोड और डिकोड करता है, और यह इन फ़ॉर्मैट्स को सपोर्ट करता है जैसे php (डिफ़ॉल्ट), php_binary, और php_serialize.
आधिकारिक सुरक्षा नोटिस के अनुसार, CVE-2026-115560 के लिए तीन विशिष्ट स्थितियों का एक साथ होना आवश्यक है:
- सर्वर शुरुआत में कॉन्फ़िगर करता है
session.serialize_handlerको या तोphp_binaryयाphp_serialize. - एप्लिकेशन उस सेटिंग को बदल देता है
phpमें, उपयोग करते हुएini_set()एग्जीक्यूशन के दौरान, कॉल करने से पहलेsession_start(). - सर्वर पर सेशन अपलोड प्रोग्रेस सक्षम रहती है।
चूंकि PHP स्क्रिप्ट निष्पादन से पहले प्रारंभिक हैंडलर का उपयोग करके अपलोड ट्रैकिंग डेटा लिखता है, इसलिए हैंडलर्स को डायनेमिक रूप से बदलने से सेशन खुलने पर एक गंभीर सीरियलाइज़ेशन बेमेल (mismatch) उत्पन्न होता है। यह एक हमलावर को ऐसा क्राफ़्टेड इनपुट प्रदान करने की अनुमति देता है जो डीसीरियलाइज़ होने पर मेमोरी करप्शन और रिमोट कोड निष्पादन को ट्रिगर करता है।
यह पहले की PHP2Shell कमजोरियों से कैसे भिन्न है
CVE-2026-115560 21 अक्टूबर को जारी किए गए आपातकालीन अपडेट की विफलता नहीं है। उन अपडेट्स में दो अलग-अलग, गंभीर खामियों को ठीक किया गया था, जिन्हें सामूहिक रूप से उपनाम दिया गया था PHP2Shell.
अपने जोखिम का मूल्यांकन करने के लिए, आपको इन तीन अलग-अलग समस्याओं के बीच अंतर समझना होगा:
1. CVE-2026-109618: आउट-ऑफ-मेमोरी क्लीनअप RCE
यह भेद्यता तब उत्पन्न होती है जब रिक्वेस्ट हैंडलिंग के दौरान PHP में मेमोरी समाप्त हो जाती है। यदि रिक्वेस्ट डेटा स्ट्रक्चर के आंशिक रूप से इनिशियलाइज़ होने के दौरान मेमोरी समाप्त हो जाती है, तो PHP संसाधनों को साफ़ करने के लिए निष्पादन को बाधित करता है। क्लीनअप के दौरान, रनटाइम अमान्य मेमोरी स्थितियों को प्रोसेस करता है, जिससे हमलावर वेब वर्कर खाते के तहत (विशेष रूप से Apache mod_phpके तहत) रिमोट कोड निष्पादन प्राप्त कर सकते हैं। अपने PHP बाइनरी को अपडेट करना ही एकमात्र पूर्ण समाधान है।
2. CVE-2026-109619: स्टेल स्टेट और यूज़-आफ्टर-फ्री
यह समस्या PHP-FPM जैसे पर्सिस्टेंट वातावरण में HTTP रिक्वेस्ट्स के दौरान वर्कर प्रोसेस के पुन: उपयोग से उत्पन्न होती है। जब कोई वर्कर पिछली रिक्वेस्ट की मेमोरी को मुक्त (free) करता है लेकिन इंटरनल पॉइंटर्स को रीसेट करने में विफल रहता है, तो उसी वर्कर द्वारा प्रोसेस की जाने वाली बाद की रिक्वेस्ट पुरानी मेमोरी तक पहुंच सकती है। इससे उत्पन्न होती है एक use-after-free स्थिति। हालांकि अपलोड प्रोग्रेस एक ट्रिगर तंत्र था, लेकिन अंतर्निहित बग कई रनटाइम पाथ्स तक फैला हुआ है।
3. CVE-2026-115560: रनटाइम हैंडलर डीसीरियलाइज़ेशन
पहले के मेमोरी करप्शन बग्स के विपरीत, यह खामी एप्लीकेशन बूटस्ट्रैप लॉजिक द्वारा निष्पादन के बीच में सेशन फ़ॉर्मैट बदलने पर निर्भर करती है। चूंकि एक आधिकारिक पैच नियमित रिलीज़ चक्र के दौरान आएगा, इसलिए प्रशासक अपने सिस्टम की सुरक्षा के लिए केवल 21 अक्टूबर के बाइनरीज़ पर निर्भर नहीं रह सकते हैं।
पूर्व शोषण के प्रमाण: 17 अक्टूबर तक का ऑडिट
हालांकि PHP ने कहा कि प्रकटीकरण से पहले CVE-2026-115560 के किसी भी सक्रिय शोषण का दस्तावेजीकरण नहीं किया गया था, लेकिन पहले की PHP2Shell कमजोरियों को सक्रिय रूप से प्रोब (जांच) किया जा रहा था।
Amazon थ्रेट रिसर्चर्स ने बताया कि उनके MadPot हनीपॉट नेटवर्क ने सार्वजनिक प्रकटीकरण और आपातकालीन पैच से पूरे चार दिन पहले, 17 अक्टूबर को PHP2Shell को लक्षित करने वाले शोषण के प्रयासों को पकड़ा। यह ट्रैफ़िक वाणिज्यिक अनामीकरण (anonymization) नेटवर्क से आया था।
इस खुफिया जानकारी के तत्काल परिचालन परिणाम हैं:
- पैच लागू करने से सिस्टम भविष्य के हमलों से सुरक्षित हो जाता है, लेकिन यह आपको यह नहीं बताता कि क्या कोई घुसपैठ पहले ही हो चुकी है।
- एक्सेस लॉग, फ़ाइल संशोधनों या असामान्य प्रक्रिया निष्पादनों की कोई भी फोरेंसिक समीक्षा प्रकटीकरण तिथि से शुरू होने के बजाय कम से कम 17 अक्टूबर, 2026 तक विस्तारित होनी चाहिए।
कदम-दर-कदम शमन और सुदृढ़ीकरण (Hardening) गाइड
चूंकि CVE-2026-115560 के लिए आधिकारिक इंजन पैच अभी भी तैयार किया जा रहा है, इसलिए प्रशासकों को 21 अक्टूबर के अपडेट्स के रोलआउट को पूरा करते हुए तुरंत कॉन्फ़िगरेशन शमन लागू करना होगा।
स्टेप 1: php.ini में सेशन अपलोड प्रोग्रेस को अक्षम (Disable) करें
अपलोड प्रोग्रेस को अक्षम करने से मानक फ़ाइल अपलोड को अक्षम किए बिना CVE-2026-115560 के लिए अटैक पाथ बंद हो जाता है। मानक अपलोड सामान्य रूप से काम करना जारी रखते हैं; केवल PHP का आंतरिक सेशन ट्रैकर अक्षम होता है।
इस डायरेक्टिव को सेट करें 0 पर, अपनी सक्रिय php.ini या FPM पूल कॉन्फ़िगरेशन में:
; Disable PHP session upload progress tracking
session.upload_progress.enabled = 0
सक्रिय कॉन्फ़िगरेशन फ़ाइलों में इस सेटिंग को सत्यापित करें:
# Check if session upload progress is enabled
php -i | grep -E "session.upload_progress.enabled"
यदि यह कमांड रिटर्न करता है session.upload_progress.enabled => Off => Off, तो मिटिगेशन सक्रिय है।
स्टेप 2: PHP-FPM और वेब सर्वर डेमन्स (Daemons) को रीस्टार्ट करें
जब वर्कर प्रोसेस स्पॉन होते हैं, तब PHP कॉन्फ़िगरेशन निर्देशों को पढ़ता है। एडिट करने का php.ini चल रहे वर्कर्स पर तब तक कोई प्रभाव नहीं पड़ता जब तक कि वे रीस्टार्ट न हों।
अपनी PHP प्रोसेसिंग सेवाओं को रीस्टार्ट करें:
# For systems running PHP-FPM with systemd
sudo systemctl restart php*-fpm
# For systems running Apache with mod_php
sudo systemctl restart apache2 || sudo systemctl restart httpd
# Verify that worker processes refreshed their start times
ps -eo pid,lstart,cmd | grep -E "php-fpm|apache2|httpd" | grep -v grep
स्टेप 3: रनटाइम हैंडलर स्विच के लिए एप्लिकेशन कोड का ऑडिट करें
इस भेद्यता के लिए आवश्यक है कि एप्लिकेशन बदले session.serialize_handler को रनटाइम पर उपयोग करते हुए ini_set()। यह सत्यापित करने के लिए अपने कोडबेस को स्कैन करें कि क्या एप्लिकेशन कोड या इंस्टॉल की गई वेंडर लाइब्रेरी यह स्विच करती हैं:
# Search for runtime serialization handler changes
grep -rn "session.serialize_handler" /var/www/html/ 2>/dev/null
यदि आपकी खोज में इसका कोई उदाहरण नहीं मिलता है ini_set('session.serialize_handler', ...), तो आपका एप्लिकेशन इस सुभेद्य रनटाइम ट्रांज़िशन को इनवोक नहीं करता है। यदि वेंडर लाइब्रेरीज़ को किसी विशिष्ट हैंडलर की आवश्यकता है, तो इसे स्टैटिक रूप से कॉन्फ़िगर करें php.ini में, इसके बजाय कि डायनेमिक रूप से पहले session_start().
स्टेप 4: 17 अक्टूबर से आगे के सिस्टम और वेब लॉग्स का निरीक्षण करें
यह सुनिश्चित करने के लिए कि हनीपॉट डेटा द्वारा पहचाने गए ज़ीरो-डे विंडो के दौरान सिस्टम को निशाना नहीं बनाया गया था, अपने वेब लॉग्स का ऑडिट करें:
# Check web server logs for suspicious session upload parameters
sudo zgrep -E "PHP_SESSION_UPLOAD_PROGRESS|php_serialize" /var/log/nginx/*access.log* /var/log/apache2/*access.log* 2>/dev/null | head -n 30
# Check for unexpected PHP files created since October 17
sudo find /var/www/html/ -type f -newermt "2026-10-17" -name "*.php" -ls
वेब वर्कर खातों द्वारा स्पॉन किए गए किसी भी असत्यापित PHP स्क्रिप्ट या अप्रत्याशित बैकग्राउंड प्रोसेस की जांच करें।
निष्कर्ष
CVE-2026-115560 का खुलासा एक आवश्यक सुरक्षा सबक को पुष्ट करता है: सॉफ्टवेयर पैचिंग और कॉन्फ़िगरेशन हार्डनिंग को एक साथ काम करना चाहिए। हालांकि टीमों को PHP2Shell मेमोरी बग्स को हल करने के लिए 21 अक्टूबर के आपातकालीन पैच को पूरी तरह डिप्लॉय करना होगा, लेकिन सेशन अपलोड प्रोग्रेस को अक्षम करना इस नए RCE अटैक वेक्टर के खिलाफ तत्काल सुरक्षा प्रदान करता है। दोनों कदम उठाने से यह सुनिश्चित होता है कि अपस्ट्रीम बगफिक्स रिलीज़ आने तक आपका वेब इन्फ्रास्ट्रक्चर लचीला और सुरक्षित बना रहे।
लाभ (Merits)
- सेशन अपलोड प्रोग्रेस को अक्षम करने से रीकंपाइल्ड बाइनरीज़ की प्रतीक्षा किए बिना तत्काल सुरक्षा मिलती है।
- मानक फ़ाइल अपलोड सामान्य रूप से काम करते रहते हैं, जिससे मुख्य एप्लिकेशन फ़ीचर्स सुरक्षित रहते हैं।
- एक अनावश्यक लेगेसी सेशन हुक को हटाकर समग्र अटैक सरफ़ेस को कम करता है।
- 17 अक्टूबर तक के लॉग्स का ऑडिट करने से प्रकटीकरण से पहले की गई प्रोबिंग और संभावित वेब शेल ड्रॉप्स का पता चलता है।
- जोखिम भरे रनटाइम पर्यावरण परिवर्तनों की तुलना में स्थिर, निर्धारक (deterministic) सेशन कॉन्फ़िगरेशन को बढ़ावा देता है।
कमियां (Demerits)
- अपलोड प्रोग्रेस को अक्षम करने से कस्टम UI प्रोग्रेस बार टूट जाते हैं जो PHP के आंतरिक सेशन ऐरे को क्वेरी करते हैं।
- डिस्ट्रिब्यूटेड सर्वर फ़्लीट में कॉन्फ़िगरेशन परिवर्तन और डेमन रीस्टार्ट के समन्वय की आवश्यकता होती है।
- कॉन्फ़िगरेशन मिटिगेशन अंतर्निहित मेमोरी बग्स को संबोधित नहीं करते हैं, जिससे आपातकालीन अपडेट अनिवार्य बने रहते हैं।
- डायनेमिक
ini_setकॉल्स की ऑबफ़स्केटेड वेंडर पैकेजों के भीतर पहचान करने के लिए समर्पित कोड ऑडिट की आवश्यकता होती है।
सावधानी (Caution)
यह लेख केवल शैक्षिक उद्देश्यों के लिए है। सिस्टम कमांड, कॉन्फ़िगरेशन निर्देश और फ़ाइल पाथ को आपके विशिष्ट Linux वितरण, PHP संस्करण और होस्टिंग आर्किटेक्चर के अनुसार अनुकूलित किया जाना चाहिए। प्रोडक्शन इन्फ्रास्ट्रक्चर को संशोधित करने से पहले हमेशा स्टेजिंग वातावरण में कॉन्फ़िगरेशन परिवर्तनों का परीक्षण करें और अपस्ट्रीम प्रोजेक्ट मेंटेनर्स के साथ सुरक्षा सलाह को सत्यापित करें।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
- CVE-2026-115560 क्या है? — यह PHP में हाल ही में उजागर हुई एक रिमोट कोड निष्पादन (RCE) भेद्यता है, जो सेशन अपलोड प्रोग्रेस और सेशन सीरियलाइज़ेशन हैंडलर्स में रनटाइम परिवर्तनों के बीच बेमेल होने के कारण होती है।
- क्या नवीनतम PHP रिलीज़ में CVE-2026-115560 को पैच किया गया है? — नहीं, यह खामी मौजूदा बिल्ड्स में अनपैच बनी हुई है, और PHP प्रोजेक्ट अपने अगले नियमित रिलीज़ चक्र में आधिकारिक समाधान देने की योजना बना रहा है।
- प्रशासक अभी सर्वरों की सुरक्षा कैसे कर सकते हैं? — प्रशासकों को सेट करना चाहिए
session.upload_progress.enabled = 0अपनीphp.iniफ़ाइलों में और सभी PHP वर्कर सेवाओं को रीस्टार्ट करना चाहिए। - क्या अपलोड प्रोग्रेस को अक्षम करने से यूज़र्स फ़ाइलें अपलोड नहीं कर पाएंगे? — नहीं, HTTP POST के माध्यम से मानक फ़ाइल अपलोड सामान्य रूप से काम करना जारी रखते हैं; केवल PHP का आंतरिक रीयल-टाइम सेशन प्रोग्रेस ट्रैकर अक्षम होता है।
- क्या यह नई खामी उन सिस्टम्स को प्रभावित करती है जिन्होंने 21 अक्टूबर के आपातकालीन अपडेट इंस्टॉल किए हैं? — हां, 21 अक्टूबर के अपडेट्स ने पुरानी PHP2Shell मेमोरी खामियों को ठीक किया था, लेकिन CVE-2026-115560 एक अलग मुद्दा है जिसके लिए कॉन्फ़िगरेशन मिटिगेशन की आवश्यकता होती है।
- सुरक्षा टीमें 17 अक्टूबर तक की गतिविधि की जांच क्यों कर रही हैं? — Amazon के MadPot नेटवर्क से प्राप्त थ्रेट इंटेलिजेंस ने सार्वजनिक प्रकटीकरण से चार दिन पहले PHP2Shell को लक्षित करने वाले शोषण के प्रयासों को देखा था, जिससे समीक्षा विंडो बढ़ गई है।
- CVE-2026-115560 का फायदा उठाने के लिए किन शर्तों की आवश्यकता है? — एप्लिकेशन को एक गैर-मानक सीरियलाइज़ेशन हैंडलर से शुरू होना चाहिए, इसे बदलना चाहिए
phpमें, के माध्यम सेini_set()कॉल करने से पहलेsession_start(), और सेशन अपलोड प्रोग्रेस सक्षम होनी चाहिए।
टैग्स
#php #cve2026115560 #php2shell #cybersecurity #vulnerability #infosec #sysadmin #devops #websecurity #patchmanagement
Prompt-Injection Defense Checklist
The controls that actually reduce the blast radius when your app feeds untrusted text to an LLM. Enter your email — you'll get the PDF instantly, plus new posts on AI, security & Linux.
Free. No spam — unsubscribe in one click.


Responses
Sign in to leave a response.