
CVE-2026-56111 के लिए प्रूफ-ऑफ-कॉन्सेप्ट शोषण, जो मार्लिन फर्मवेयर के M421 G-code हैंडलर में आउट-ऑफ-बाउंड्स लिखने की समस्या है, जो गढ़े गए G-code कमांड्स के माध्यम से सीमित मेमोरी भ्रष्टाचार प्रदर्शित करता है।
CVE-2026-56111 के लिए प्रमाण-अवधारणा, Marlin Firmware के M421 G-कोड हैंडलर में एक सीमा-से-बाहर लेखन, जब MESH_BED_LEVELING के साथ बनाया गया हो।
1f255d1 में ठीक किया गयाMBL M421 हैंडलर केवल यह जाँचता है कि I/J सूचकांक नकारात्मक नहीं हैं। यह कभी ऊपरी सीमा की जाँच नहीं करता। set_z() फिर बिना सीमा जाँच के z_values[ix][iy] = z लिखता है। ग्रिड से बाहर का सूचकांक z_values ऐरे से परे एक नियंत्रित 32-बिट फ्लोट को आसन्न फर्मवेयर स्थिति में लिखता है।
लेखन सीमित है, मनमाना नहीं। लक्ष्य z_values + (ix*GRID_Y + iy)*4 बाइट्स है, जिसमें सूचकांक int8_t (अधिकतम 127) द्वारा सीमित हैं, इसलिए पहुंच योग्य विंडो z_values से लगभग 2 KB आगे है। आप मान (Z फ्लोट) और ऑफसेट (सूचकांक) को नियंत्रित करते हैं। आप एक निरपेक्ष पते को नियंत्रित नहीं करते।
यह उपकरण केवल G-कोड लाइन भेजता है। सीमा-से-बाहर लेखन फर्मवेयर के अंदर होता है। देखने योग्य प्रभाव सेवा से इनकार, फर्मवेयर क्रैश, या दूषित गति हैं। सटीक मेमोरी लेखन सलाह में दिखाया गया है, इस उपकरण द्वारा नहीं।
gcc -O2 -o exp exploit.c
एक चैनल चुनें:
--serial <dev> USB के लिए, उदा. /dev/ttyUSB0 या /dev/ttyACM0
(यदि आवश्यक हो तो --baud N जोड़ें; कई बोर्ड 250000 का उपयोग करते हैं)--tcp <host:port> टेलनेट/नेटवर्क gcode प्रदर्शित करने वाले प्रिंटर के लिए, उदा. 192.168.1.50:23अपनी पसंद के सूचकांक और मान के साथ M421 भेजें:
./exp --serial /dev/ttyUSB0 write -i 3 -j 0 -z 99.0
./exp --tcp 192.168.1.50:23 write -i 5 -j 0 -z 99.0
डिफ़ॉल्ट 3x3 ग्रिड (मान्य सूचकांक 0..2) पर:
-i 3 -j 0 36 बाइट्स के ऑफसेट पर लिखता है, जो z_offset (बेड Z ऑफसेट) है-i 5 -j 0 60 बाइट्स के ऑफसेट पर लिखता है, जो पार्सर ऑब्जेक्ट हैएक NaN Z मान के साथ एक सीमा-से-बाहर सूचकांक भेजें। NaN गति गणित में फैलता है और विश्वसनीय रूप से फर्मवेयर को क्रैश या हैंग कर देता है:
./exp --serial /dev/ttyUSB0 dos
./exp --tcp 192.168.1.50:23 dos
उस Marlin बिल्ड में अपडेट करें जिसमें कमिट 1f255d1 शामिल है, जो सूचकांकों को उसी तरह सीमित करता है जैसे ABL और UBL हैंडलर पहले से करते हैं।
केवल अनुसंधान और अधिकृत परीक्षण के लिए। केवल उन उपकरणों पर उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण की स्पष्ट अनुमति है। इन आदेशों को भेजने से प्रिंटर क्रैश हो सकता है या प्रिंट बाधित हो सकता है।