
Joomla JCE <= 2.9.99.4 में CVE-2026-48907 के लिए रक्षात्मक प्रयोगशाला सत्यापन और SOC डिटेक्शन मार्गदर्शन, जिसमें Apache/Joomla/auditd टेलीमेट्री, वेबशेल आर्टिफैक्ट, Sigma नियम, MITRE ATT&CK मैपिंग और शमन अनुशंसाएँ शामिल हैं।
CVE-2026-48907 के लिए रक्षात्मक सत्यापन रिपोर्ट और SOC-उन्मुख डिटेक्शन नोट्स, जो जूमला कंटेंट एडिटर (JCE) संस्करण 2.9.99.4 तक को प्रभावित करता है।
यह रिपॉजिटरी जूमला JCE में CVE-2026-48907 के नियंत्रित प्रयोगशाला सत्यापन का दस्तावेजीकरण करती है और SOC टीमों के लिए व्यावहारिक डिटेक्शन इंजीनियरिंग पर ध्यान केंद्रित करती है।
इसका उद्देश्य शोषण मार्गदर्शन प्रदान करना नहीं है। इसका उद्देश्य यह दिखाना है कि सत्यापन के दौरान कौन से टेलीमेट्री स्रोत उपयोगी थे, कौन से आर्टिफैक्ट बनाए गए, और रक्षक इस गतिविधि का पता लगाने और उस पर प्रतिक्रिया करने के लिए कैसे उपयोग कर सकते हैं।







एक प्रमुख परिचालन निष्कर्ष यह है कि जूमला एप्लिकेशन लॉग पर्याप्त नहीं थे।
प्रयोगशाला परीक्षण के दौरान, जूमला लॉग ने एप्लिकेशन-स्तरीय संदर्भ दर्ज किया, जैसे कि joomlafailure ईवेंट, लेकिन उन्होंने पूरी शोषण श्रृंखला नहीं दिखाई। उपयोगी श्रृंखला मुख्य रूप से इनमें दिखाई देती थी:
access.logerror.logexecve रिकॉर्डjoomla_html/tmp में फ़ाइल सिस्टम आर्टिफैक्टSOC निगरानी के लिए, जूमला लॉग को प्राथमिक डिटेक्शन स्रोत के रूप में नहीं, बल्कि सहायक टेलीमेट्री के रूप में माना जाना चाहिए।
नियंत्रित परीक्षण के दौरान देखी गई उच्च-स्तरीय श्रृंखला:
JCE संस्करण खोज
↓
Joomla JCE घटक के लिए POST
↓
PHP वेबशेल Joomla /tmp पर लिखी गई
↓
/tmp/jce*.xml.php के लिए HTTP अनुरोध
↓
वेबशेल के माध्यम से कमांड निष्पादन
↓
auditd /usr/bin/dash और www-data के रूप में निष्पादित कमांड की पुष्टि करता है
सबसे स्पष्ट सबूत Apache access.log में मौजूद था:
GET /plugins/editors/jce/jce.xml
GET /
POST /index.php?option=com_jce
GET /tmp/jceolxtshs3.xml.php
GET /plugins/editors/jce/jce.xml
POST /index.php?option=com_jce
GET /tmp/jce624jdcfx.xml.php
GET /tmp/jce624jdcfx.xml.php?c=id%20%26%26%20hostname%20%26%26%20pwd
GET /tmp/jce624jdcfx.xml.php?c=whoami
GET /tmp/jce624jdcfx.xml.php?c=hostname
GET /tmp/jce624jdcfx.xml.php?c=id
GET /tmp/jce624jdcfx.xml.php?c=pwd
Apache/PHP त्रुटि लॉग में मूल्यवान पार्सर-संबंधित निशान थे:
simplexml_load_string()
administrator/components/com_jce/helpers/profiles.php
RXST
RXEND
RXST और RXEND मार्कर इस विशेष PoC परिवार के लिए विशेष रूप से उपयोगी संकेतक थे क्योंकि वे पेलोड हैंडलिंग पथ में दिखाई दिए।
जूमला लॉग ने पुष्टि की कि एप्लिकेशन लॉगिंग सक्रिय थी, लेकिन उन्होंने शोषण का पुनर्निर्माण नहीं किया:
#Software: Joomla! 5.4.6 Stable [ Kutegemea ] 26-May-2026 16:00 GMT
#Fields: datetime priority clientip category message
2026-06-18T20:37:57+00:00 INFO 172.20.10.2 joomlafailure Username and password do not match or you do not have an account yet.
इसका मतलब है कि केवल जूमला लॉग एकत्र करने से CVE-2026-48907 शोषण का सबसे महत्वपूर्ण सबूत छूट सकता है।
परीक्षण ने जूमला tmp में PHP वेबशेल फ़ाइलें बनाईं:
/var/www/html/tmp/jce624jdcfx.xml.php
/var/www/html/tmp/jceolxtshs3.xml.php
प्रयोगशाला में होस्ट-साइड पथ:
/home/user/joomla-jce-lab/joomla_html/tmp/jce624jdcfx.xml.php
/home/user/joomla-jce-lab/joomla_html/tmp/jceolxtshs3.xml.php
देखे गए SHA256 हैश:
b6fa303daef8aa8cb39566c73d2cb4a458efb2b1fba48052dd039d45c3beb0aa jce624jdcfx.xml.php
f8bcc802ab56b845c968ed6727228f200f8f4bcd332b8ce82c6980d93ac228fd jceolxtshs3.xml.php
हैश-आधारित डिटेक्शन को कम-लचीला माना जाना चाहिए क्योंकि फ़ाइल नाम और पेलोड भिन्न हो सकते हैं। पथ, एक्सटेंशन, स्वामित्व और व्यवहारिक सहसंबंध अधिक उपयोगी हैं।
auditd ने पुष्टि की कि वेब सर्वर उपयोगकर्ता ने जूमला tmp निर्देशिका से कमांड निष्पादित किए:
CWD=/var/www/html/tmp uid=www-data comm=sh exe=/usr/bin/dash
CWD=/var/www/html/tmp uid=www-data comm=id exe=/usr/bin/id
CWD=/var/www/html/tmp uid=www-data comm=hostname exe=/usr/bin/hostname
CWD=/var/www/html/tmp uid=www-data comm=whoami exe=/usr/bin/whoami
यह सबसे मजबूत पुष्टि है कि गतिविधि केवल स्कैनिंग नहीं थी, बल्कि वास्तविक दूरस्थ कोड निष्पादन थी।
सबसे मजबूत डिटेक्शन सहसंबंध-आधारित है:
GET /plugins/editors/jce/jce.xml
इसके बाद
POST /index.php?option=com_jce
इसके बाद
GET /tmp/jce*.xml.php
इसके बाद
GET /tmp/jce*.xml.php?c=
और/या
auditd: www-data /var/www/html/tmp से /usr/bin/dash निष्पादित करता है
/plugins/editors/jce/jce.xml
/index.php?option=com_jce
/tmp/jce[a-z0-9]{8}\.xml\.php
/tmp/.*\.(php|phtml|phar)(\?| )
cs-uri-query contains "c="
joomla_html/tmp/jce*.xml.php
/var/www/html/tmp/jce*.xml.php
RXST
RXEND
shell_exec
system
passthru
exec
$_GET['c']
इनका उपयोग केवल उन सिस्टमों पर करें जिनके आप मालिक हैं या जिनकी जाँच करने के लिए आप अधिकृत हैं।
grep -RniE "com_jce|profiles\.import|task=profiles|/tmp/.*\.php|RXST|RXEND" apache_logs joomla_html/administrator/logs 2>/dev/null
find ./joomla_html/tmp ./joomla_html/images ./joomla_html/media \
-type f \( -iname "*.php" -o -iname "*.phtml" -o -iname "*.phar" -o -iname "*.xml.php" \) -ls
sudo ausearch -k wwwdata_exec -i | grep -E "uid=www-data|comm=sh|/usr/bin/dash|/var/www/html/tmp|whoami|hostname| id |pwd"
अलग सिग्मा नियम फ़ाइलें rules/sigma में उपलब्ध हैं:
joomla_jce_webshell_tmp_access.ymljoomla_jce_component_exploit_attempt.ymlweb_user_shell_from_joomla_tmp_auditd.ymlसटीक कॉन्फ़िगरेशन Apache/PHP परिनियोजन मॉडल पर निर्भर करता है। लक्ष्य उन निर्देशिकाओं में PHP निष्पादन को रोकना है जिन्हें कभी स्क्रिप्ट नहीं चलानी चाहिए।
<Directory "/var/www/html/tmp">
php_admin_flag engine off
Options -ExecCGI
RemoveHandler .php .phtml .phar
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
</Directory>
<Directory "/var/www/html/images">
php_admin_flag engine off
Options -ExecCGI
RemoveHandler .php .phtml .phar
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
</Directory>
प्रयोगशाला ने JCE 2.9.99.4 के विरुद्ध व्यावहारिक शोषण की पुष्टि की। देखे गए प्रवाह में Joomla में प्रमाणीकरण की आवश्यकता नहीं थी, और सार्वजनिक PoC ने स्वचालित संस्करण पहचान और वेबशेल निर्माण किया।
वास्तविक वातावरण के लिए, जोखिम तब उच्च से क्रिटिकल होता है जब Joomla इंटरनेट-फ़ेसिंग हो या कम विश्वसनीय आंतरिक नेटवर्क से पहुँचने योग्य हो। एक सफल हमला एक स्थायी वेबशेल छोड़ सकता है, इसलिए संदिग्ध जोखिम के बाद आर्टिफैक्ट निरीक्षण के बिना पैचिंग पर्याप्त नहीं है।
यह रिपॉजिटरी रक्षात्मक अनुसंधान, SOC डिटेक्शन इंजीनियरिंग और भेद्यता प्रबंधन के लिए है। इसमें शोषण कोड शामिल नहीं है। किसी भी परीक्षण को केवल उन सिस्टमों पर किया जाना चाहिए जिनके आप मालिक हैं या जिनका आकलन करने के लिए आप स्पष्ट रूप से अधिकृत हैं।
| क्षेत्र | निष्कर्ष |
|---|
| भेद्यता | जूमला कंटेंट एडिटर (JCE) में CVE-2026-48907; अप्रमाणित प्रोफ़ाइल निर्माण/आयात वर्कफ़्लो जो PHP अपलोड और कोड निष्पादन का कारण बन सकता है। |
| परीक्षण किया गया संस्करण | JCE 2.9.99.4। जूमला व्यवस्थापक पैनल ने 2.9.99.7 का उपलब्ध अपडेट दिखाया। |
| प्रयोगशाला परिणाम | सार्वजनिक PoC सत्यापन ने RCE की पुष्टि की और Joomla /tmp में jce*.xml.php के रूप में एक PHP वेबशेल बनाया। कमांड www-data के रूप में निष्पादित किए गए। |
| सबसे मूल्यवान टेलीमेट्री | Apache access.log, Apache/PHP error.log, auditd execve टेलीमेट्री और joomla_html/tmp में फ़ाइल सिस्टम आर्टिफैक्ट। |
| जूमला लॉग | सहायक संदर्भ के रूप में उपयोगी, लेकिन अकेले अपर्याप्त। जूमला एप्लिकेशन लॉग ने पूरी श्रृंखला का पुनर्निर्माण नहीं किया: शोषण → वेबशेल → कमांड निष्पादन। |
| SOC प्राथमिकता | इंटरनेट-फ़ेसिंग Joomla इंस्टेंस या कम विश्वसनीय आंतरिक नेटवर्क से पहुँचने योग्य Joomla इंस्टेंस के लिए क्रिटिकल। |
| पैरामीटर | मान |
|---|
| एप्लिकेशन URL | http://172.20.10.3:9999 |
| जूमला कंटेनर | joomla-jce-lab, इमेज joomla:5-apache |
| डेटाबेस कंटेनर | joomla-jce-db, इमेज mariadb:11 |
| पोर्ट मैपिंग | 0.0.0.0:9999 -> 80/tcp |
| Apache | Apache/2.4.67 (Debian) |
| PHP | PHP 8.3.31 |
| MariaDB | 11.8.8-MariaDB |
| जूमला | Joomla 5.4.6 Stable |
| JCE | 2.9.99.4 |
| परीक्षण स्रोत | Windows 11, IP 172.20.10.2 |
| लॉगिंग | Apache एक्सेस/एरर लॉग, Joomla लॉग, auditd, Docker लॉग, फ़ाइल सिस्टम आर्टिफैक्ट |
| गंभीरता | स्थिति | SOC कार्रवाई |
|---|
| निम्न | किसी असामान्य स्रोत से GET /plugins/editors/jce/jce.xml | इसे टोही के रूप में मानें और बाद के अनुरोधों से सहसंबंधित करें। |
| मध्यम | बिना व्यवस्थापक रेफ़रर या अज्ञात IP से POST /index.php?option=com_jce | सतर्क करें और बाद के /tmp अनुरोधों की समीक्षा करें। |
| उच्च | POST com_jce के बाद GET /tmp/*.php या /tmp/*.xml.php | तुरंत फ़ाइल सिस्टम आर्टिफैक्ट और PHP त्रुटि लॉग सत्यापित करें। |
| क्रिटिकल | GET /tmp/jce*.xml.php?c= या auditd www-data को शेल/सिस्टम कमांड लॉन्च करते हुए दिखाता है | इसे पुष्ट RCE/वेबशेल मानें, होस्ट को अलग करें या प्रतिबंधित करें और सबूत संरक्षित करें। |
| चरण | कार्रवाई | लक्ष्य |
|---|
| 1 | जाँच करें कि क्या इंस्टेंस JCE <= 2.9.99.4 चला रहा है या उपलब्ध JCE अपडेट दिखाता है। | कमजोर स्थिति की पुष्टि करें। |
| 2 | एक्सेस/एरर लॉग में com_jce, profiles.import, /tmp/*.php, jce*.xml.php खोजें। | प्रयासित या सफल शोषण की पहचान करें। |
| 3 | PHP/PHTML/PHAR फ़ाइलों और असामान्य नामों के लिए tmp, images, और media का निरीक्षण करें। | वेबशेल या बैकडोर का पता लगाएं। |
| 4 | शेल या सिस्टम उपयोगिताओं को स्पॉन करने वाले www-data के लिए auditd/EDR की समीक्षा करें। | कोड निष्पादन की पुष्टि करें। |
| 5 | यदि वेबशेल/RCE की पुष्टि होती है, तो होस्ट को अलग करें या एप्लिकेशन के लिए ट्रैफ़िक प्रतिबंधित करें। | आगे की गतिविधि रोकें। |
| 6 | आर्टिफैक्ट संरक्षित करें, वेबशेल हटाएं, JCE प्रोफ़ाइल, जूमला खाते, क्रॉन जॉब और संशोधित फ़ाइलों की समीक्षा करें। | ट्राएज और उन्मूलन। |
| 7 | JCE को नवीनतम समर्थित संस्करण में अपडेट करें और अन्य जूमला इंस्टेंस की समीक्षा करें। | शमन और जोखिम में कमी। |
| प्राथमिकता | अनुशंसा | तर्क |
|---|
| P1 | JCE को Joomla/PHP शाखा के लिए नवीनतम समर्थित संस्करण में अपडेट करें। | प्रयोगशाला में JCE 2.9.99.4 कमजोर था और जूमला ने 2.9.99.7 का अपडेट दिखाया। |
| P1 | पैचिंग के बाद, वेबशेल और संदिग्ध JCE प्रोफ़ाइल की जाँच करें। | अपडेट प्रवेश बिंदु को बंद करता है लेकिन पैचिंग से पहले छोड़े गए आर्टिफैक्ट को नहीं हटाता है। |
| P1 | tmp, images, media, cache, और अपलोड निर्देशिकाओं में PHP निष्पादन को अवरुद्ध करें। | भले ही अपलोड सफल हो, PHP निष्पादन अवरुद्ध करने से RCE श्रृंखला टूट जाती है। |
| P2 | option=com_jce और task=profiles.import के लिए WAF या अनुरोध फ़िल्टरिंग जोड़ें। | PHP तक पहुँचने से पहले शोषण प्रयासों का पता लगाने और अवरुद्ध करने में मदद करता है। |
| P2 | केंद्रीय रूप से Apache एक्सेस लॉग, PHP त्रुटि लॉग और auditd/EDR टेलीमेट्री इनजेस्ट करें। | जूमला एप्लिकेशन लॉग अकेले अपर्याप्त थे। |
| P2 | समय-समय पर जूमला एक्सटेंशन इन्वेंट्री और अपडेट-स्थिति जाँच लागू करें। | जूमला पैनल ने JCE अपडेट सिग्नल का खुलासा किया; इसे VM/SOC वर्कफ़्लो में फीड करना चाहिए। |
| P3 | फ़ाइल बेसलाइन बनाए रखें और नियंत्रित निर्देशिकाओं के बाहर नई PHP फ़ाइलों पर सतर्क करें। | समझौते के बाद वेबशेल और दृढ़ता का पता लगाने में मदद करता है। |
| तकनीक | नाम | तर्क |
|---|
| T1190 | सार्वजनिक-सामना करने वाले एप्लिकेशन का शोषण | प्रमाणीकरण के बिना Joomla/JCE एंडपॉइंट का HTTP शोषण। |
| T1505.003 | सर्वर सॉफ़्टवेयर घटक: वेब शेल | /tmp/jce*.xml.php के रूप में निर्मित PHP वेबशेल। |
| T1059.004 | कमांड और स्क्रिप्टिंग इंटरप्रेटर: यूनिक्स शेल | www-data द्वारा निष्पादित /usr/bin/dash। |
| T1033 | सिस्टम स्वामी/उपयोगकर्ता खोज | वेबशेल के माध्यम से whoami और id निष्पादित। |
| T1082 | सिस्टम सूचना खोज | वेबशेल के माध्यम से hostname निष्पादित। |
| T1083 | फ़ाइल और निर्देशिका खोज | pwd और /var/www/html/tmp में गतिविधि। |