
Alpine Linux पर काम करने वाले copyfail LPE (CVE-2026-31431) का अधिक पोर्टेबल POC
यह Copy Fail LPE (CVE-2026-31431) का एक अधिक न्यूनतम पोर्ट है जो /etc/passwd के पहले कुछ बाइट्स को पैच करता है ताकि su-ing to root के लिए कोई पासवर्ड की आवश्यकता न हो। यह मूल एक्सप्लॉइट के कुल आकार को कम करता है और इसे अधिक पोर्टेबल बनाता है। Alpine जैसे वितरण बसीबॉक्स/मसल का उपयोग एक स्टैंडअलोन su बाइनरी और glibc लिंकेज के बजाय करते हैं, इसलिए मूल बाइनरी पैचिंग विधि आमतौर पर काम नहीं करती। मैं विशेष रूप से Alpine पर काम करने वाला एक पोर्ट बनाना चाहता था, लेकिन यह विधि कमजोर कर्नेल वाले लगभग किसी भी डिस्ट्रो पर काम करनी चाहिए, अंतर्निहित कोरयूटिल फॉर्मेट और सीपीयू आर्किटेक्चर से स्वतंत्र, क्योंकि यह अधिक सर्वव्यापी लक्ष्य को संशोधित करने पर निर्भर करती है। (ध्यान दें कि यह पीओसी एक कंटेनर एस्केप नहीं है)
पोर्टेबल स्टैंडअलोन बाइनरी के लिए Go इम्प्लीमेंटेशन का उपयोग करें:
go build -o exp main.go
./exp

या बस एक अनप्रिविलेज्ड उपयोगकर्ता के रूप में python3 exp.py का उपयोग करके पायथन स्क्रिप्ट चलाएं और अपना रूट शेल प्राप्त करें।

Alpine Linux 3.20.5 पर परीक्षण किया गया जो कर्नेल 6.6.69 चला रहा है।
संपीड़ित ब्लॉब में बाइट स्ट्रिंग root::0:0: होती है जो रूट के मूल एंट्री (root:x:0:0:root:/root:/bin/sh) से 'x' को पैच करती है, जब su कॉल किया जाता है तो /etc/shadow में पासवर्ड की जांच को बायपास करती है।
References: