
Docker लैब, CVE-2026-75650 Magento घटक-स्तरीय PHP निष्पादन प्रिमिटिव और Adobe VULN-39341 पैच को मान्य करने के लिए।
यह स्टैंडअलोन लैब StyleSmuggler कंपोनेंट-स्तरीय PHP निष्पादन प्रिमिटिव को रिविज़न-पिन किए गए Magento Open Source 2.4.9 चेकआउट पर पुनरुत्पादित करता है और फिर साबित करता है कि Adobe का VULN-39341 पैच समान इनपुट को ब्लॉक करता है।
प्रमाण गैर-विनाशकारी है: शामिल PHP केवल /tmp में एक यादृच्छिक मार्कर लिख सकता है। यह कमांड नहीं चला सकता, फ़ाइल डाउनलोड नहीं कर सकता, कॉलबैक नहीं खोल सकता, या ऑपरेटर-आपूर्ति किए गए पेलोड को स्वीकार नहीं कर सकता।
लैब निम्नलिखित प्रदान करता है:
755e34dd689021c5165db9d35ecff74f7dc51527 पर पिन किया गया एक स्टॉक Magento 2.4.9 डॉकर स्टैक;लैब स्टॉक अनऑथेंटिकेटेड HTTP एक्सप्लॉइट का दावा नहीं करता। कंपोनेंट प्रोब वास्तविक ईमेल-टेम्पलेट मॉडल से शुरू होता है, इसलिए यह खतरनाक सिंक और पैच सीमा को साबित करता है, न कि लापता नेटवर्क-से-टेम्पलेट कनेक्टर को। कोई सिंथेटिक HTTP रूट नहीं जोड़ा गया है।
केवल उन सिस्टमों पर उपयोग करें जिनके आप मालिक हैं या जिनका परीक्षण करने के लिए आप स्पष्ट रूप से अधिकृत हैं। PHP प्रोब को प्रोडक्शन वेब रूट के अंतर्गत न रखें। वास्तविक इंस्टॉलेशन के लिए, रीड-ओनली वैलिडेटर का उपयोग करें या एक डिस्पोज़ेबल स्टेजिंग क्लोन को मान्य करें।
आवश्यकताएँ:
केवल डेवलपर-मोड स्टोरफ्रंट गेटवे प्रकाशित है, और केवल लूपबैक (127.0.0.1:8096 डिफ़ॉल्ट रूप से) पर। एक दूसरा अनएक्सपोज़्ड nginx गेटवे मानक प्रोडक्शन त्रुटि हैंडलिंग का चयन करता है ताकि रिपोर्ट परीक्षण Magento का सामान्य रिपोर्ट पहचानकर्ता प्राप्त करे। MariaDB, Redis, OpenSearch, PHP-FPM, और वह रिपोर्ट गेटवे होस्ट नेटवर्क के लिए एक्सपोज़्ड नहीं हैं।
cd docker-lab
cp .env.example .env
docker compose up -d --build
docker compose logs -f php
प्रारंभिक Magento क्लोन, निर्भरता इंस्टॉलेशन, और एप्लिकेशन इंस्टॉलेशन में सामान्यतः 15–40 मिनट लगते हैं। जब PHP लॉग Ready प्रिंट करता है, तो चलाएँ:
docker compose exec -T php bash /lab/scripts/run-ab.sh
या सुविधा लक्ष्यों का उपयोग करें:
make up
make wait
make ab
A/B कमांड हमेशा स्रोत को पैच की गई स्थिति में छोड़ने का प्रयास करता है।
परीक्षण केवल तभी पास होता है जब दोनों स्वतंत्र रूप से परीक्षण किए गए हिस्से अपेक्षा के अनुरूप व्यवहार करते हैं:
Unpatched report: raw-tag=true, guard=false
Patched report: raw-tag=false, guard=true, neutralized=true
Unpatched component: marker=true
Patched component: marker=false
[PASS] Report storage and component execution match the required A/B controls.
HTTP 200, रेंडर की गई सूचना, उत्पन्न त्रुटि रिपोर्ट, या फेंका गया अपवाद निष्पादन प्रमाण के रूप में स्वीकार नहीं किया जाता है। रिपोर्ट और निष्पादन जाँच अलग रहती हैं: उनकी संयुक्त सफलता अप्रमाणित स्टॉक HTTP कनेक्टर का आविष्कार नहीं करती।
make vulnerable
make report # अपेक्षित: कच्चा टैग संरक्षित, कोई निष्पादन गार्ड नहीं
make probe # अपेक्षित: execution_observed=true और exit 0
make patched
make report # अपेक्षित: exit गार्ड मौजूद, पेलोड टैग निष्प्रभावी
make probe # अपेक्षित: execution_observed=false और exit 2
पैच की गई स्थिति में make probe का 2 लौटाना अपेक्षित नकारात्मक परिणाम है; make ab दोनों exit स्थितियों को संभालता है और केवल तभी 0 लौटाता है जब पूरा A/B पास होता है।
यह जाँच कभी भी Magento शुरू नहीं करती या माउंट किए गए ट्री से कोड निष्पादित नहीं करती। कंटेनर में कोई नेटवर्क नहीं है, कोई Linux क्षमताएँ नहीं हैं, एक रीड-ओनली रूट फ़ाइलसिस्टम है, और एक रीड-ओनली लक्ष्य माउंट है।
make validate TARGET=/absolute/path/to/magento
अपेक्षित पूर्ण रूप से पैच किया गया निर्णय:
Summary: 9/9 controls present
Verdict: FULL_CONTROL_SET_PRESENT
इससे कम कुछ भी FULL_CONTROL_SET_NOT_CONFIRMED के रूप में रिपोर्ट किया जाता है, न कि स्वचालित रूप से शोषण योग्य के रूप में। सटीक Commerce संस्करण/रिलीज़ की पुष्टि करें और Adobe का संस्करण-मिलान वाला पैच उसके समर्थित डिप्लॉयमेंट प्रक्रिया के माध्यम से लागू करें।
अधिक सटीक नाम मार्कर-ओनली कंपोनेंट कोड-निष्पादन प्रोब है। एंड-टू-एंड दूरस्थ RCE के लिए एक स्टॉक दूरस्थ अनुरोध को परीक्षण किए गए बिल्ड पर अपना स्वतंत्र मार्कर या कॉलबैक उत्पन्न करना आवश्यक है।
डेटा प्रवाह, नौ पैच नियंत्रण, और प्रमाण-शक्ति तालिका के लिए तकनीकी नोट्स देखें। सटीक परीक्षण किए गए परिणाम VALIDATION.md में दर्ज हैं।
आधिकारिक बुलेटिन और तैनात रिलीज़ से मेल खाने वाले पैच का उपयोग करें:
यहां एम्बेड किया गया पैच केवल सार्वजनिक 2.4.9 मोनोरेपो लैब के लिए पाथ-मैप किया गया है। इसे सीधे प्रोडक्शन Composer इंस्टॉलेशन पर लागू न करें। पैचिंग पहले से मौजूद इम्प्लांट को हटाती नहीं है या एक्सपोज़्ड क्रेडेंशियल्स को पुनर्स्थापित नहीं करती है।
make down # वॉल्यूम संरक्षित करें
make reset # इस लैब के स्रोत, डेटाबेस, और OpenSearch वॉल्यूम हटाएं