
गैर-हथियारीकृत CVE-2016-5195 (Dirty COW) विश्लेषण और सत्यापन हार्नेस, जिसमें मूल-कारण अनुसंधान, अपस्ट्रीम पैच समीक्षा, और पुष्टि किए गए कर्नेल के लिए सुरक्षित केवल-प्रयोगशाला PoC शामिल है।
रक्षात्मक अनुसंधान, गैर-हथियारीकृत सत्यापन, और पैच विश्लेषण CVE-2016-5195 (Dirty COW) के लिए, जो एक Linux कर्नेल कॉपी-ऑन-राइट रेस कंडीशन है जो किसी स्थानीय उपयोगकर्ता को केवल-पठनीय मैपिंग से जुड़े डेटा को संशोधित करने और उन्नत विशेषाधिकार प्राप्त करने की अनुमति दे सकता है।
| फ़ील्ड | मान |
|---|---|
| घटक | Linux कर्नेल मेमोरी प्रबंधन / get_user_pages() |
| कमज़ोरी | CWE-362: अनुचित सिंक्रनाइज़ेशन के साथ साझा संसाधन का समवर्ती निष्पादन |
| गंभीरता | उच्च, CVSS 3.1: 7.0 |
| वेक्टर | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| हमले की पूर्वापेक्षा | स्थानीय निम्न-विशेषाधिकार पहुंच |
| अपस्ट्रीम फिक्स | 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 |
| पहला फिक्स्ड अपस्ट्रीम रिलीज़ | Linux 4.8.3; वितरण बैकपोर्ट भिन्न होते हैं |
Dirty COW, Linux कर्नेल द्वारा फोर्स्ड राइट्स और
कॉपी-ऑन-राइट (COW) मैपिंग्स को संभालने में एक रेस है। एक स्थानीय उपयोगकर्ता पेज इनवैलिडेशन को
/proc/self/mem के माध्यम से एक राइट के साथ रेस कर सकता है। प्रभावित कर्नेल पर, यह रेस
नाममात्र रूप से केवल-पठनीय प्राइवेट मैपिंग से जुड़े डेटा को अंतर्निहित फ़ाइल में
वापस लिखे जाने का कारण बन सकता है।
सार्वजनिक प्रभाव स्थानीय विशेषाधिकार वृद्धि है जब कोई हमलावर प्राइमिटिव को सुरक्षा-संवेदनशील फ़ाइल पर लागू कर सकता है। यह कमजोरी अक्टूबर 2016 में वास्तविक दुनिया में शोषित की गई थी। यह रिपॉजिटरी उस वृद्धि पथ को स्वचालित नहीं करती है।
डिफ़ॉल्ट हार्नेस जानबूझकर सीमित है:
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
poc.c -o dirtycow-safe -pthread
केवल-लैब एक्सप्लॉइट प्राइमिटिव को अलग से बनाया जा सकता है:
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
exploit.c -o dirtycow-exploit -pthread
./dirtycow-safe
वैकल्पिक सीमित पुनरावृत्ति संख्या:
./dirtycow-safe --iterations 5000000
संभावित परिणाम:
marker-observed: डिस्पोजेबल inode पर कमजोर व्यवहार देखा गया।marker-not-observed: अनिर्णायक। एक रेस का ट्रिगर न होना यह साबित नहीं करता
कि कर्नेल फिक्स किया गया है।77: आवश्यक Linux /proc/self/mem इंटरफ़ेस उपलब्ध नहीं है।PoC परिणाम का उपयोग प्राथमिक पैच-स्थिति जांच के रूप में न करें। चालू वितरण के लिए कर्नेल पैकेज सलाह देखें और सत्यापित करें कि रीबूट के बाद पैच किया गया कर्नेल सक्रिय है।
exploit.c एक स्पष्ट फ़ाइल और प्रतिस्थापन प्रीफ़िक्स स्वीकार करता है और
प्रभावित कर्नेल पर मनमानी-फ़ाइल राइट प्राइमिटिव प्रदर्शित करता है। इसके लिए शाब्दिक --i-understand पुष्टि की आवश्यकता होती है, सीमित पेलोड और
पुनरावृत्ति सीमाएँ लागू करता है, और विशेषाधिकार-वृद्धि पेलोड नहीं बनाता है।
चयनित फ़ाइल स्थायी रूप से संशोधित हो सकती है। इसका उपयोग केवल एक पृथक, डिस्पोजेबल लैब में करें जो आपके पास है या जिसे आप परीक्षण करने के लिए स्पष्ट रूप से अधिकृत हैं। पूर्ण
रेस और स्थिति-संक्रमण विश्लेषण ROOT_CAUSE.md में है।
evidence/evidence.json आधिकारिक प्री-फिक्स और फिक्स्ड Linux संशोधनों में देखे गए स्रोत हस्ताक्षरों, चेतावनी-मुक्त
PoC बिल्ड परिणाम, और सत्यापन सुरक्षा गुणों को दर्ज करता है।
evidence/validation.log एक संक्षिप्त सारांश प्रदान करता है।
कैप्चर किए गए सत्यापन ने रेस को निष्पादित नहीं किया।
विक्रेता-प्रदत्त कर्नेल अपडेट स्थापित करें और पैच किए गए कर्नेल में रीबूट करें। अकेले अपस्ट्रीम वर्जन स्ट्रिंग से जोखिम का निर्णय न लें: एंटरप्राइज़ और वितरण कर्नेल अक्सर अपस्ट्रीम वर्जन संख्या को अपनाए बिना फिक्स को बैकपोर्ट करते हैं। कंटेनर होस्ट कर्नेल का उपयोग करते हैं, इसलिए उपचार में होस्ट को भी शामिल किया जाना चाहिए।
सटीक अपस्ट्रीम परिवर्तन के लिए PATCH_ANALYSIS.md देखें और
सत्यापन मार्गदर्शन के लिए VULNERABILITY_REPORT.md देखें।
इस सामग्री का उपयोग केवल उन सिस्टमों पर करें जो आपके पास हैं या जिन्हें आप परीक्षण करने के लिए स्पष्ट रूप से अधिकृत हैं।
| पथ | उद्देश्य |
|---|
poc.c | केवल एक अनलिंक किए गए अस्थायी inode का उपयोग करके गैर-हथियारीकृत सत्यापन |
exploit.c | अधिकृत डिस्पोजेबल लैब के लिए मनमानी-फ़ाइल राइट प्राइमिटिव |
ROOT_CAUSE.md | विस्तृत कमजोर स्थिति संक्रमण और रेस विश्लेषण |
VULNERABILITY_REPORT.md | पूर्वापेक्षाएँ, मूल कारण, प्रभाव, और उपचार |
PATCH_ANALYSIS.md | अपस्ट्रीम FOLL_COW फिक्स का लाइन-स्तरीय विश्लेषण |
evidence/ | संरचित सत्यापन आउटपुट और व्याख्या नोट्स |