PHP2Shell blew up: CVSS 9.2, उद्घाटन से पहले दिन, और दो छेद 10 साल के लिए कोड में थे।
सबसे पहले, निष्कर्ष यह है:PHP ने एक उपनाम PHP2Shell के साथ CVSS 9.2, संख्या CVE-2026-109618 और CVE-2026-109619 के लिए एक अनधिकृत रिमोट कोड का उत्पादन किया। 20 अक्टूबर को, इसे सार्वजनिक बनाया गया था और 21 अक्टूबर को 1400 UTC पैच जारी किए गए थे, जबकि अमेज़ॅन के शहद कनस्तर 17 अक्टूबर को शुरू होने से चार दिन पहले दर्ज किए गए थे।
इससे भी बदतर क्या है: ये दो छेद PHP 5.4 को प्राप्त करने वाले पहले हैं, जिसका अर्थ है ...वे एक दशक से अधिक के लिए कोड में हैं।मुझे नहीं पता। और 2024 में, जब PHP कोर डेवलपर ऑडिट ने OOM के पथ की खोज की, तो टीम ने यह तय करने के तरीके पर चर्चा करने के लिए मुलाकात की।हम सहमत नहीं थे और फिर हम इसे ठीक नहीं करते थे।मैं नहीं जानता हूँ। इसका कारण यह है कि वास्तव में इसका उपयोग नहीं किया जा सकता है।
यह वाक्यांश अब विशेष रूप से आयरनिक दिखता है। ऐसा करने में सक्षम नहीं होने का कारण यह नहीं है कि छेद महत्वहीन है, लेकिन यह श्रृंखला मानव शोधकर्ताओं की भौतिक क्षमता से परे जाने के लिए बहुत जटिल है। फिर एआई आया और इसे बाहर लिखा।
सबसे पहले, "बहुराष्ट्रीय आपातकालीन प्रतिक्रिया" शब्द प्राप्त करें। देखो।
शीर्षक पार्टी का पसंदीदा शब्द "ग्लोबल अलार्म" है। यह इस बार अतिरंजन नहीं है, लेकिन यह एक स्पष्ट स्कोर है।
- PHP आधिकारिक20 अक्टूबर को एक अग्रिम नोटिस जारी किया गया था, जिसमें कहा गया है कि 21 अक्टूबर को 14:00 UTC को एक सुरक्षित संस्करण में जारी किया जाएगा यदि विवरण लीक या फील्ड किया गया था। नतीजतन, CVE नंबर को उसी दिन हैकर न्यूज़ को छुड़ाया गया था, और 22 अक्टूबर को होने वाली रिलीज को एक दिन पहले मजबूर किया गया था।
- CERT-EU: रिलीज सलाहकार 2026-018 और दोनों CVEs शामिल हैं।
- Cloudflare21 अक्टूबर को, CTO Dane Knecht ने सीधे कहा, "शुरुआत हमले को उभरने के लिए देखा गया है", और WAF नियमों को पूरी तरह से मुक्त उपयोगकर्ताओं सहित जारी किया गया था। लेकिन उन्होंने खुद पर जोर दिया कि यह सिर्फ स्टॉपगैप था, और वास्तविक समाधान पैचिंग था।
- अमेज़न खतरा जानकारी: 17 अक्टूबर को मैडपॉट शहद के डिब्बे को पकड़ा गया था और दूसरा बैच 21 अक्टूबर को पकड़ा गया था और पेलोड और इन्फ्रास्ट्रक्चर ने कई अलग-अलग हमलावरों को इंगित किया। php2shell "सबसे पहले से ही व्यापक रूप से इस्तेमाल किया जाता है"।
- Towrदोनों छेद फिर से उभरे हैं, जबकि दोनों का शोषण करने का प्रयास किया जाता है।
इसलिए " हमला पाया गया है" एक प्रतिपादन नहीं है, लेकिन एक तथ्य है। और बहुराष्ट्रीय आपातकालीन प्रतिक्रिया एक झटका नहीं है - यह सिर्फ यही है कि प्रतिक्रिया के मुख्य विषय निर्माता, CDN और आपातकालीन संगठन हैं, जो देश में कोई भी सरकार नहीं है।
दो, दो छेद, मरने के दो पूरी तरह से अलग तरीके।
कई लोगों को लगता है कि यह दो संख्याओं के साथ एक छेद है, नहीं। ये हमले के दो अलग-अलग मार्ग हैं, प्रत्येक CVSS 9.2।
CVE-2026-109618: जब स्मृति समाप्त हो जाती है तो बम
किसी अनुरोध के प्रसंस्करण को तब बाधित किया जाता है जब PHP मेमोरी वितरण विफल हो जाता है। समस्या है:इस बिंदु पर, आंतरिक अनुरोध डेटा केवल आधा-initialized किया जा सकता है, और बाद में क्लीन-अप लॉजिक ने वैध डेटा के रूप में बुरा डेटा के इस एकीकृत टुकड़े का उपयोग किया होगा।
ट्रिगर विधि सरल है: स्मृति को सरल करने के लिए एक बहुपक्ष अनुरोध का निर्माण। अजीब बात है,अनुरोध का आकार आपकी छत से मेल खाता है।यह पोस्ट अधिकतम आकार आप सेट अप नहीं है, यह डिकोडमेंट और आंतरिक प्रसंस्करण की खपत है।
सबसे खराब मॉड php है। स्टार्टअप विफल होने पर अपाचे के लिए मॉड phpयह अभी भी साफ करने जा रहा है।इसलिए इस श्रृंखला को किसी भी लागू कोड रन से पहले पूरा किया जा सकता है। आपका PHP कोड इतना साफ है, कोई लूपहोल नहीं है, इसमें कोई रोक नहीं है।
PHP-FPM कार्यकर्ता को मारने के लिए जब यह शुरू करने में विफल रहता है, तो सिर्फ श्रृंखला को काटने के लिए, इसलिए आधिकारिक तौर पर, मॉड php सबसे ज्यादा जोखिम है। लेकिन ध्यान देना - इसका मतलब यह नहीं है कि एफपीएम सुरक्षित है।सफल स्टार्टअप के बादअभी भी शोषण की संभावना है।
CVE-2026-109619: अनुरोध के बीच गंदे राज्य
इससे भी बदतर है। PHP कई अनुरोधों को संसाधित करने के लिए कार्यकर्ता प्रक्रिया का पुन: उपयोग करेगा। स्मृति को जारी करने का अंतिम अनुरोध, सूचक आंतरिक स्थिति में रहता है; अगले अनुरोध में आता है,सामान्य प्रारंभिककरण से पहले खाली पता पढ़ें।मुझे नहीं पता।
घातक त्रुटियां (मनीकी की कमी, प्रदर्शन टाइमआउट) राज्य की सफाई को बाधित करती हैं। इससे भी बदतर, शटडाउन के दौरान कुछ गैर घातक निदान ने गलत अवस्था को बदल दिया होगा।इसे फिर से करें।मुझे नहीं पता।
आधिकारिक तौर पर पुष्टि किए गए मार्गों में शामिल हैं: जब PHP 8.5 सक्षम घातक त्रुटि बैकट्रैस (डिफ़ॉल्ट खोलने) और सत्र जीवन चक्र RCE मोटर php और FPM पर।session.upload_progress डिफ़ॉल्ट रूप से, आप गंदगी की स्थिति में एक प्रारंभिक उपभोक्ता के रूप में कार्य कर सकते हैं।और कॉल लागू करने की कोई आवश्यकता नहीं हैमुझे नहीं पता।
यह छेद अभी भी जुड़ा हुआ है।मेमोरी लीकमैं नहीं जानता हूँ। लीक क्या था? प्रक्रिया मेमोरी में अन्य अनुरोधों के लिए पासवर्ड, टोकन, एपीआई कुंजी, प्रमाण पत्र है। Wiz सीधे Heartbled की तुलना में, जो बहुत ज्यादा नहीं है।
टाइमलाइन, शीर्षक लुक से अधिक।
| समय | क्या हुआ? |
|---|---|
| वर्ष 2024 | PHP कोर डेवलपर ऑडिट पाया OOM, कि बग, टीम कानून पर कोई आम सहमति नहीं थी, इसे पकड़ो। |
| 2026-08 | Ryan ऑस्टिन ऑफ़ कैलिफ़ ओपनए जीपीटी -5.6 सोल के साथ लूपहोल की पहचान करता है; विज़ स्वतंत्र डिस्कवरी |
| 2026-10-17 | अमेज़न MadPot, शहद एक प्रयास रिकॉर्ड कर सकते हैं, उद्घाटन से चार दिन पहले। |
| 2026-10-20 | CVE number leaked in हैकर न्यूज़ एंड सोशल मीडिया, पीएचपी |
| 2026-10-21 | 14:00 UTC प्रकाशन 8.5.12 / 8.3.36 / 8.2.35 |
अक्टूबर 17th को बंद किया जाना चाहिए।सार्वजनिक दिन 20 वें था, लेकिन 17 वें स्थान पर हमला हुआ।अमेज़न प्रस्ताव सीधा है: प्रारंभिक बिंदु प्रकटीकरण तिथि पर नहीं होना चाहिए, लेकिन कम से कम 17 अक्टूबर के लिए आगे होना चाहिए।
जैसा कि हमलावरों ने पहले से जानकारी प्राप्त की, अमेज़न ने कहा "नहीं स्पष्ट"। मैं इस में नहीं जा सकता, लेकिन आपको एक वास्तविकता को स्वीकार करना होगा।प्रकटीकरण दिन कभी हमले का दिन नहीं था, लेकिन जिस दिन आप अंततः जानते थे।
चार, इस बार यह वास्तव में एआई है।
विज़ के ब्लॉग में एक वाक्य है जिसे मैंने दो बार पढ़ा है: “ये अंतर्निहित दोष दशकों तक अस्तित्व में हैं, लेकिन यह साबित करने के लिए कि उनका उपयोग किया जा सकता है, उन्हें मानव शोधकर्ताओं की वास्तविक क्षमताओं के मार्जिन पर, चरणों की असाधारण जटिल श्रृंखला की आवश्यकता होती है।फ्रंटलाइन एआई मॉडल इस सीमा को काफी कम कर देता है।मुझे नहीं पता।
विशिष्ट: Ryan Austin, Calif में एक शोधकर्ता, GPT-5.6 सोल के साथ OpenAI परियोजना "Patch the Planet" में पाया गया। Wiz स्वतंत्र रूप से एक ही समस्या पाया। इसका उपयोग करने के लिए, हमें दोषों की एक श्रृंखला की आवश्यकता होती है और प्रत्येक लक्ष्य को लक्षित करती है।मेमोरी लेआउट बार-बार कैलिब्रेटेडविज़ कहते हैं कि फ्रंट-लाइन मॉडल उन्हें घंटों के भीतर विभिन्न अनुप्रयोगों के लिए उपयोग करने योग्य अनुप्रयोगों को विकसित करने की अनुमति देता है।
इसका मतलब यह नहीं है कि "AI ने फिर से जीता"।बिंदु यह है कि "कॉम्प्लेक्स" का moat विफल हो रहा है।
पिछले दो दशकों में कई पुराने पाशहोल को हराया नहीं गया है, क्योंकि वे गंभीर नहीं हैं, लेकिन क्योंकि उपयोग की सीमा बहुत अधिक है - शीर्ष शोधकर्ताओं द्वारा निवेश के कुछ सप्ताह और भाग्य के कुछ सप्ताह। इसलिए आप उन्हें "theoretically जोखिम भरा" स्तंभ में डाल दिया। अब यह बाड़ चला गया है।
उन दस वर्षीय छेद जो आपके सिस्टम में झूठ बोलते हैं और उन्हें "डिफिस्क्युल्ट एंड अनप्रोसेस्ड" के रूप में रेट किया जाता है।
पांच, जो आपको जाना चाहिए?
| शाखा | प्रभावित संस्करण | निपटान |
|---|---|---|
| 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 7.4 / 8.0 / 8.1 | सब | आधिकारिक तौर पर प्रकाशित, केवल स्रोत स्तर |
| PHP 5.4 – 7.3 | सब | EOL, सरकार इसे ठीक नहीं करती है। व्यापार |
कई वास्तविक जीवन अनुस्मारक:
- लिनक्स रिलीज और LTS विक्रेताअग्रिम में एक पैच मिला।एक वितरण पैकेज के साथ अपने निर्माता के सलाहकार की जांच करें। स्रोत कोड को नहीं बढ़ाते।
- उपयोग
rpms.remirepo.netनोट: PHP ने आधिकारिक तौर पर 21 अक्टूबर को स्रोत को बताया।अद्यतन नहींतो आप एक वितरण पैकेज पर स्विच कर सकते हैं या इसे स्रोत कोड से बना सकते हैं। - PHP 8.5 की Windows बाइनरी आधिकारिक डाउनलोड पृष्ठ पर भी है।
- यह नहीं लगता कि कंटेनर में चलाने के लिए ठीक है - कंटेनर दर्पण के PHP संस्करण की जांच की जानी है।
छह, यदि आप एक पैच नहीं प्राप्त कर सकते हैं, तो इन चारों को पहले बनाएं।
पहला राज्य:इनमें से कोई भी आपको सुरक्षित नहीं करेगा।आधिकारिक PHP वाक्यांश "विशिष्ट हमले पथ के संपर्क को कम करता है, लेकिन इंस्टॉलेशन को सुरक्षित नहीं बनाता है। उनका मूल्य आपको पैच पाने के लिए समय देना है।
1 तक मेमोरी सीमा निर्धारित करें
उद्देश्य: भविष्यवाणी करने योग्य PHP मेमोरी कैप को विफल करने के लिए, यानी CVE-2026-109618 ने ट्रिगर स्थिति की पुष्टि की है जिस पर यह निर्भर करता है।
बिंदु है,कैसे?जहां आवेदन unaltered है, जैसे कि एफपीएम पूल php_admin_value या अपाचे विन्यास। आपको यह जांचना होगा कि सीमा वापस जोड़ने के लिए कोई पॉप, डायरेक्टरी, एप्लिकेशन सेटिंग नहीं हैं।फिर प्रत्येक कार्यकर्ता को फिर से शुरू करें।
कीमत स्पष्ट है: आप PHP की अपनी मेमोरी बाड़ को बंद कर रहे हैं, और नीचे वितरण विफलता अभी भी उस खतरनाक रास्ते पर हो सकती है। इसलिए कवर को सीमित करने के लिए एक कंटेनर या एक cgroup होना चाहिए - लेकिन यह केवल "कुशल प्रभावित लोगों" की रणनीति है।कभी RLIMIT AS या RLIMIT DATA का उपयोग नहीं करतेवे दोनों ठीक तरह के वितरण विफलताएं हैं जो लूपहोल बनाते हैं।
पोस्ट अधिकतम आकार कम करें
बिना फ़ाइल के साइटों 8M फ़ाइल करने के लिए 32M और गारंटी upload_max_filesize इससे कम। उसी समय, सीमा को वेब सर्वर या प्रॉक्सी परत में जोड़ा जाता है - अनुरोधों की मात्रा, क्षेत्रों की संख्या, बहुभाग भागों की संख्या, प्रमुखों की संख्या, घोंसले की गहराई।इन प्रतिबंधों को उन अनुरोधों को कवर करना चाहिए जो मान्य नहीं हैं Content-Lengthया हम इसके चारों ओर जा सकते हैं।
3. सत्र बंद करना.upload प्रक्रिया
session.upload_progress.enabled = 0
यह php.ini, FPM उपकरण या सर्वर विन्यास में लिखा गया है।यह अनुरोध से पहले प्रभावी होना चाहिए।मुझे नहीं पता। उपयोग ini_set() या FPM .user.ini यह बहुत देर थी - यह गंदा था। बदलाव सभी कार्यकर्ताओं को फिर से शुरू करने के लिए भी है।
PHP 8.5 एकल
fatal_error_backtraces = 0
यह ब्लॉक केवल घातक त्रुटि बैकट्रैक की पुष्टि करता है, जिसमें कोई अन्य संस्करण नहीं है। इसके अलावा प्रशासक स्तर सेटिंग्स की आवश्यकता होती है + वर्कर को फिर से शुरू करें।
इसके अलावा, आधिकारिक उल्लेख है कि कई लोग अनदेखी करेंगे:घातक त्रुटियों को ठीक करें कि हमलावर समय को ट्रिगर और निष्पादित कर सकते हैं।, जिसमें बैक-अप, अपलोड, इंपोर्ट प्रोसेसिंग, क्लीन-अप विफलता शामिल है। और...किसी अनुरोध-दर-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-पर-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-के-की-की-की-की-की-की-की-की-की-की-की-की-की-की-के-की-की-की-की-की-की-की-की-की-की-की- के आधार पर-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की-की- वे नैदानिक जानकारी को थूकने से पहले इसे शुरू किया गया है और लीक को खिलाया।
यह अंतिम वाक्य बहुत आसानी से गलत है:यह त्रुटि रिपोर्टिंग, प्रदर्शन त्रुटियों या @ के साथ निदान को छिपाने के लिए काम नहीं करता है।ऐसा नहीं होता।
VII REAL LESSON OF this
मैं "पैच को बंद करें" लिखकर समाप्त नहीं करना चाहता। बेशक यह एक पैच है। यह आज है। लेकिन कुछ निर्णयों को बदलना पड़ता है।
- "difficult to use" शब्द अब "prescribed" के समान नहीं है।PHP इस छेद की एक्सेस श्रृंखला एआई की मदद की आवश्यकता के लिए काफी जटिल है, जिसने पहले से ही मदद की है। आपकी परिसंपत्ति सूची में पुराने छेद जो "theory जोखिम" को चिह्नित करते हैं, को फिर से दर्ज किया जाना चाहिए।
- भाषा एक ही बिंदु पर चलती है।वर्डप्रेस, Drupal, Joomla, Magento, MediaWiki सभी PHP पर चल रहे हैं, आपका अनुप्रयोग कोड ऑडिट साफ है, और PHP कोर परेशानी में है। बुनियादी ढांचे की परतों की क्षतिपूर्ति लय, आवेदन परतों के साथ अलग हो गया।
- " एप्लिकेशन कोड बिना दौड़े टूट गया है"। WAF केवल देरी हो सकती है।क्लाउडफ्लेयर ने खुद कहा कि यह स्टॉपगैप था। WAF को एक समाधान के रूप में रखना नियम कवरेज के लिए जीवन देने के बराबर है।
- PHP का उपयोग करके देश में बहुत पुराना साइटें हैं।वे स्टेशन जो PHP 5.6/7.0 पर चलते हैं, जो लंबे समय तक बनाए गए थे और क्लाउड मेनफ्रेम पर लटकाए गए थे, 1.3 से 1.9 मिलियन के इस एक्सपोजर में हैं। उन्हें कोई नोटिस नहीं मिलेगा।
डेटा कैलिब्रेशन रिकॉर्ड किए गए हैं: W3Techs का कहना है कि PHPs सेवा के लिए ज्ञात भाषाओं के 69.3 प्रतिशत के लिए खाता है, और Wiz 70 प्रतिशत; जोखिम मेजबान, सुरक्षा शोधकर्ता Silas Cutler 1.3 मिलियन से अधिक का अनुमान है, और हेंक पोली की Shodan खोज 1.9 मिलियन से अधिक है। ये संख्या अलग-अलग कैलिबर हैं और उन्हें सटीक मान के रूप में उपयोग नहीं करते हैं, लेकिन पैमाने समान है -दुनिया भर में लाखों लोग।
एक और विस्तार से याद रखने लायक है: जब CVE नंबर लीक हो गया था, तो CVSS अंक जो बाहर निकल गए थे 10.0, PHP आधिकारिक तौर पर पुष्टि की गई थी।यह स्कोर गलत था।यह वास्तव में 9.2 है। किसी को भी इस विस्तार के बारे में कुछ पता नहीं होगा, लेकिन यह हमेशा संचलन में होगा। 10.0 देखना, आपको पता है कि यह क्या है।
10 साल का छेद, एआई-सहायता प्राप्त अनुसंधान के दो महीने, प्रारंभिक उपयोग के चार दिन, एक दिवसीय पैच विंडो। यह टाइमस्केल सभी बुनियादी सॉफ्टवेयर का सामान्य है जो इस प्रकार है।
अब संस्करण की जाँच करें।php -vया टैग पर अपने कंटेनर दर्पण को देखें। कल इंतजार मत करो।