स्टैक क्लैश काफी पुरानी तकनीक पर आधारित एक शोषण है। एक प्रक्रिया द्वारा उपयोग की जाने वाली मेमोरी को दो क्षेत्रों में विभाजित किया जाता है - स्टैक और ढेर । एक आम तौर पर स्टैक को नीचे की तरफ बढ़ने और ढेर को ऊपर की तरफ बढ़ने के रूप में कल्पना करता है। क्या होता है जब या तो दूसरे के साथ संघर्ष करने के लिए पर्याप्त बढ़ता है ? अधिक सामान्यतः, तब क्या होता है जब स्टैक असंबंधित मेमोरी स्पेस में अतिक्रमण करने के लिए पर्याप्त बढ़ता है? मूल भेद्यता 12 साल पुरानी है, और लिनक्स कर्नेल डेवलपर्स ने इसे अस्थायी रूप से एक गार्ड पेज का उपयोग करके तय किया है । हालांकि, क्वालिस के शोधकर्ता गार्ड पेज के बावजूद इसका फायदा उठाने में कामयाब रहे हैं।
Ars Technica की रिपोर्ट :
स्टैक क्लैश कमजोरियों ने धीरे-धीरे व्यापक जागरूकता हासिल की है, पहले 2005 में सुरक्षा शोधकर्ता गेल डेल्लाउ के निष्कर्षों के साथ और पांच साल बाद शोधकर्ता रफाल वोजटचुक द्वारा लिनक्स भेद्यता जारी करने के साथ । लिनक्स डेवलपर्स
ने एक सुरक्षा की शुरुआत की जिसका उद्देश्य स्टैक क्लैश को रोकना था, लेकिन आज का शोध दर्शाता है कि हमलावरों के लिए उस उपाय को बायपास करना अपेक्षाकृत आसान है।
क्वालिस द्वारा विकसित प्राथमिक प्रूफ-ऑफ-कॉन्सेप्ट अटैक CVE-2017-1000364 के रूप में अनुक्रमित एक भेद्यता का फायदा उठाता है। क्वालिस के शोधकर्ताओं ने ऐसे हमलों का भी विकास किया है जो सीवीई-2017-1000365 और सीवीई-2017-1000367 सहित विभिन्न कमजोरियों का फायदा उठाने के लिए स्टैक क्लैश का उपयोग करते हैं। उदाहरण के लिए, जब CVE-2017-1000367 के साथ संयुक्त रूप से, सूदो में हाल ही में एक निश्चित दोष भी क्वालिस द्वारा खोजा गया है, स्थानीय उपयोगकर्ता बहुत व्यापक श्रेणी के ओएस पर पूर्ण रूट विशेषाधिकार प्राप्त करने के लिए सूडो का शोषण कर सकते हैं। क्वालिस अब तक कारनामों को दूरस्थ रूप से निष्पादित कोड बनाने में असमर्थ रहा है। एकमात्र दूरस्थ अनुप्रयोग जिसकी उन्होंने जांच की वह एक्जिम मेल सर्वर था, जो संयोग से अनपेक्षित था। क्वालिस ने कहा कि यह संभावना को खारिज नहीं कर सकता है कि इस तरह के दूरस्थ कोड-निष्पादन के कारनामे मौजूद हैं। क्वालिस ने कहा कि यह बाद की तारीख में प्रूफ-ऑफ-कॉन्सेप्ट कारनामे जारी करेगा,
[...] बहुत अधिक जानकारी क्वालिस की इस विस्तृत तकनीकी सलाह और इस तकनीकी विश्लेषण से उपलब्ध है ।
2010 से मूल फिक्स के बारे में LWN लेख का हवाला देते हुए :
क्योंकि लिनक्स प्रक्रिया स्टैक और हीप पेजों को अलग नहीं करता है, एक स्टैक पेज को समीपवर्ती हीप पेज में ओवरराइट करना संभव है। इसका मतलब है कि ढेर में पर्याप्त मेमोरी स्टैक (उदाहरण के लिए पुनरावर्ती कॉल से) समाप्त हो सकता है। एक प्रोग्राम जो उस हीप पेज (जैसे एक एक्स क्लाइंट) को लिख सकता है, उसके चयन के स्थान पर कूदने के लिए किसी एक कॉल के रिटर्न एड्रेस में फेरबदल कर सकता है। इसका मतलब है कि ग्राहक सर्वर को अपने चुनने के कोड को चलाने का कारण बन सकता है - मनमाना कोड निष्पादन - जिसे रूट विशेषाधिकार प्राप्त करने के लिए लिया जा सकता है।
उपरोक्त विवरण विभिन्न यूनिक्स जैसी गुठली पर लागू होता है।
जबकि Ars Technica Qualys रिपोर्ट में उल्लेखित एक अस्थायी वर्कअराउंड पर ध्यान देती है (" हार्ड RLIMIT STACK और RLIMIT_AS को स्थानीय उपयोगकर्ताओं और दूरस्थ सेवाओं को कम मूल्य पर सेट करें"), यह ध्यान दिया जाना चाहिए कि यह इस शोषण के खिलाफ जरूरी नहीं है । वर्तमान में एकमात्र सुरक्षित तरीका अपग्रेड करना है। ग्रामसुरक्षा विश्लेषण के अनुसार:
यह स्पष्ट होना चाहिए कि कर्नेल-केवल इस समस्या को हल करने का प्रयास जरूरी हमेशा अधूरा होगा, क्योंकि असली मुद्दा स्टैकिंग की कमी में है। चूंकि वैकल्पिक वास्तविक समाधान सभी उपयोगकर्ताभूमि के पुनर्निर्माण पर निर्भर करता है, यह संभावना है कि भविष्य के भविष्य के लिए एकमात्र संभव समाधान हो।
अब हम जो सबसे अच्छा कर सकते हैं वह कर्नेल को एक पैच किए गए संस्करण में अपग्रेड करना है।
2010 के शोषण ने एक्स सर्वर का उपयोग किया, यह एक सूदो का उपयोग करता था, अगले कोई भी उपयोगकर्ता के कार्यक्रमों की भीड़ में से कोई भी हो सकता है जो किसी बिंदु पर, उन्नत विशेषाधिकार के तहत चलता है।
क्वालिस ने अभी तक कारनामों के लिए कोई सबूत-अवधारणा कोड प्रकाशित नहीं किया है (वे बाद की तारीख में ऐसा करने की योजना बनाते हैं)।
CVE-2017-1000364 से जुड़े कई उबंटू सुरक्षा नोटिस हैं:
यह भी ध्यान दें कि सीवीई ट्रैकर लंबित फिक्स के रूप में कई रिलीज / कर्नेल संयोजनों को सूचीबद्ध करता है।
आमतौर पर, सबसे आसान फिक्स अपने सिस्टम को नवीनतम कर्नेल पैकेज ASAP में अपडेट करना है।
USNs से संबंधित कर्नेल संस्करण (उपयोग करते हुए for i in {24..35}; curl -s https://www.ubuntu.com/usn/usn-33$i-1/ | pup 'dl:nth-last-of-type(1)'
):
-
Ubuntu 17.04:
-
linux-image-4.10.0-24-
न्यूनता 4.10.0-24.28
-
linux-image-generic-lpae
4.10.0.24.26
-
linux-image-generic
4.10.0.24.26
-
linux-image-4.10.0-24-जेनेरिक- lpae
4.10.0-24.28
-
linux-image-4.10.0-24- जेनेरिक
4.10.0-24.28
-
linux-image-
lowlatency 4.10.0.24.26
-
Ubuntu 17.04:
-
linux-image-4.10.0-1008-raspi2
4.10.0-1008.11
-
linux-image-raspi2
4.10.0.1008.10
-
Ubuntu 16.10:
-
linux-image-powerpc-
smp 4.8.0.56.69
-
linux-image-powerpc-e500mc
4.8.0.56.69
-
linux-image-4.8.0-56-powerpc-
smp 4.8.0-56.61
-
linux-image-4.8.0-56-powerpc-e500mc
4.8.0-56.61
-
linux-image-4.8.0-56-
lowlatency 4.8.0-56.61
-
linux-
image- जेनेरिक
4.8.0.56.69
-
linux-image-4.8.0-56- जेनेरिक
4.8.0-56.61
-
linux-image-powerpc64-emb
4.8.0.56.69
-
linux-image-virtual
4.8.0.56.69
-
linux-image-powerpc64-
smp 4.8.0.56.69
-
linux-image-4.8.0-56- जेनेरिक- lpae
4.8.0-56.61
-
linux-image-generic-lpae
4.8.0.56.69
-
linux-image-
lowlatency 4.8.0.56.69
-
linux-image-4.8.0-56-powerpc64-emb
4.8.0-56.61
-
Ubuntu 16.10:
-
linux-image-4.8.0-1040-raspi2
4.8.0-1040.44
-
linux-image-raspi2
4.8.0.1040.44
-
Ubuntu 16.04 LTS:
-
linux-image-powerpc64-smp-lts-utopic
4.4.0.81.87
-
linux-image-generic-lts-
wily 4.4.0.81.87
-
linux-image-generic-lts-utopic
4.4.0.81.87
-
linux-image-4.4.0-81- जेनेरिक- lpae
4.4.0-81.104
-
linux-image-powerpc64-emb-lts-vivid
4.4.0.81.87
-
linux-image-powerpc-e500mc
4.4.0.81.87
-
linux-image-generic-lpae-lts-xenial
4.4.0.81.87
-
linux-image-generic-lpae-lts-utopic
4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-emb
4.4.0-81.104
-
linux-image-powerpc-e500mc-lts-
wily 4.4.0.81.87
-
linux-image-4.4.0-81-powerpc-e500mc
4.4.0-81.104
-
linux-image-generic-lpae-lts-
wily 4.4.0.81.87
-
linux-image-virtual-lts-vivid
4.4.0.81.87
-
linux-image-virtual-lts-utopic
4.4.0.81.87
-
linux-image-virtual
4.4.0.81.87
-
linux-image-powerpc64-emb-lts-
wily 4.4.0.81.87
-
linux-image-
lowlatency -lts-vivid
4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-vivid
4.4.0.81.87
-
linux-image-powerpc64-emb
4.4.0.81.87
-
linux-image-powerpc-smp-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81- जेनेरिक
4.4.0-81.104
-
linux-image-powerpc64-smp-lts-vivid
4.4.0.81.87
-
linux-image-
lowlatency -lts-
wily 4.4.0.81.87
-
linux-image-4.4.0-81-
lowlatency 4.4.0-81.104
-
linux-
image- जेनेरिक
4.4.0.81.87
-
linux-image-lowlatency-lts-xenial
4.4.0.81.87
-
linux-image-powerpc64-smp-lts-xenial
4.4.0.81.87
-
linux-image-powerpc64-emb-lts-utopic
4.4.0.81.87
-
linux-image-generic-lts-xenial
4.4.0.81.87
-
linux-image-generic-lts-vivid
4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-utopic
4.4.0.81.87
-
linux-image-powerpc-
smp 4.4.0.81.87
-
linux-image-4.4.0-81-powerpc-
smp 4.4.0-81.104
-
linux-image-generic-lpae-lts-vivid
4.4.0.81.87
-
linux-image-generic-lpae
4.4.0.81.87
-
linux-image-powerpc64-smp-lts-
wily 4.4.0.81.87
-
linux-image-powerpc64-emb-lts-xenial
4.4.0.81.87
-
linux-image-powerpc-
smp -lts-
wily 4.4.0.81.87
-
linux-image-virtual-lts-
wily 4.4.0.81.87
-
linux-image-powerpc64-
smp 4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-
smp 4.4.0-81.104
-
linux-image-powerpc-
smp -lts-utopic
4.4.0.81.87
-
linux-image-powerpc-
smp -lts-vivid
4.4.0.81.87
-
linux-image-
lowlatency 4.4.0.81.87
-
linux-image-virtual-lts-xenial
4.4.0.81.87
-
linux-image-
lowlatency -lts-utopic
4.4.0.81.87
-
Ubuntu 16.04 LTS:
-
linux-image-4.4.0-1016-gke
4.4.0-1016.16
-
Ubuntu 16.04 LTS:
-
linux-image-
snapdragon 4.4.0.1061.54
-
linux-image-4.4.0-1061-Snapdragon
4.4.0-1061.66
-
Ubuntu 16.04 LTS:
-
linux-image-4.4.0-1020-aws
4.4.0-1020.29
-
Ubuntu 16.04 LTS:
-
linux-image-raspi2
4.4.0.1059.60
-
linux-image-4.4.0-1059-raspi2
4.4.0-1059.67
-
Ubuntu 16.04 LTS:
-
linux-image-4.8.0-56-powerpc-
smp 4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-powerpc-e500mc
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-
lowlatency 4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56- जेनेरिक
4.8.0-56.61 ~ 16.04.1
-
linux-image-generic-hwe-16.04
4.8.0.56.27
-
linux-image-lowlatency-hwe-16.04
4.8.0.56.27
-
linux-image-4.8.0-56- जेनेरिक- lpae
4.8.0-56.61 ~ 16.04.1
-
linux-image-virtual-hwe-16.04
4.8.0.56.27
-
linux-image-generic-lpae-hwe-16.04
4.8.0.56.27
-
linux-image-4.8.0-56-powerpc64-emb
4.8.0-56.61 ~ 16.04.1
-
Ubuntu 14.04 LTS:
-
linux-image-powerpc-smp-lts-xenial
4.4.0.81.66
-
linux-image-lowlatency-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-powerpc-
smp 4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-powerpc-e500mc
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-
lowlatency 4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81- जेनेरिक- lpae
4.4.0-81.104 ~ 14.04.1
-
linux-image-generic-lpae-lts-xenial
4.4.0.81.66
-
linux-image-powerpc64-smp-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81- जेनेरिक
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-powerpc64-
smp 4.4.0-81.104 ~ 14.04.1
-
linux-image-generic-lts-xenial
4.4.0.81.66
-
linux-image-powerpc64-emb-lts-xenial
4.4.0.81.66
-
linux-image-powerpc-e500mc-lts-xenial
4.4.0.81.66
-
linux-image-virtual-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-powerpc64-emb
4.4.0-81.104 ~ 14.04.1
-
Ubuntu 14.04 LTS:
-
linux-image-powerpc-e500mc
3.13.0.121.131
-
linux-image-
lowlatency -
pae 3.13.0.121.131
-
linux-image-3.13.0-121-powerpc64-emb
3.13.0-121.170
-
linux-image-generic-
pae 3.13.0.121.131
-
linux-image-3.13.0-121-powerpc-
smp 3.13.0-121.170
-
linux-image-3.13.0-121-powerpc-e500mc
3.13.0-121.170
-
linux-image-3.13.0-121-powerpc-e500
3.13.0-121.170
-
linux-image-3.13.0-121-जेनेरिक- lpae
3.13.0-121.170
-
linux-image-generic-lts-quantal
3.13.0.121.131
-
linux-image-virtual
3.13.0.121.131
-
linux-image-powerpc-e500
3.13.0.121.131
-
linux-image-generic-lts-trusty
3.13.0.121.131
-
linux-image-3.13.0-121-जेनेरिक
3.13.0-121.170
-
linux-image-
omap 3.13.0.121.131
-
linux-image-powerpc64-emb
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc64-
smp 3.13.0-121.170
-
linux-
image- जेनेरिक
3.13.0.121.131
-
linux-image-highbank
3.13.0.121.131
-
linux-image-generic-lts-saucy
3.13.0.121.131
-
linux-image-powerpc-
smp 3.13.0.121.131
-
linux-image-3.13.0-121-
lowlatency 3.13.0-121.170
-
linux-image-generic-lpae-lts-saucy
3.13.0.121.131
-
linux-image-generic-lts-raring
3.13.0.121.131
-
linux-image-powerpc64-
smp 3.13.0.121.131
-
linux-image-generic-lpae-lts-trusty
3.13.0.121.131
-
linux-image-generic-lpae
3.13.0.121.131
-
linux-image-
lowlatency 3.13.0.121.131
-
Ubuntu 12.04 ESM:
-
linux-image-powerpc-
smp 3.2.0.128.142
-
linux-image-3.2.0-128-virtual
3.2.0-128.173
-
linux-image-3.2.0-128-जेनेरिक-
पाई 3.2.0-128.173
-
linux-
image- जेनेरिक
3.2.0.128.142
-
linux-image-generic-
pae 3.2.0.128.142
-
linux-image-highbank
3.2.0.128.142
-
linux-image-3.2.0-128-highbank
3.2.0-128.173
-
linux-image-3.2.0-128-powerpc-
smp 3.2.0-128.173
-
linux-image-virtual
3.2.0.128.142
-
linux-image-powerpc64-
smp 3.2.0.128.142
-
linux-image-3.2.0-128-
omap 3.2.0-128.173
-
linux-image-3.2.0-128-powerpc64-
smp 3.2.0-128.173
-
linux-image-
omap 3.2.0.128.142
-
linux-image-3.2.0-128-जेनेरिक
3.2.0-128.173
-
Ubuntu 12.04 LTS:
-
linux-image-3.13.0-121-generic
3.13.0-121.170 ~ exact1
-
linux-image-generic-lpae-lts-trusty
3.13.0.121.112
-
linux-image-generic-lts-trusty
3.13.0.121.112
-
linux-image-3.13.0-121-जेनेरिक- lpae
3.13.0-121.170 ~ exact1
sudo
उपर्युक्त सूदो बग 30 मई, 2017 से USN-3304-1 द्वारा कवर किया गया है :
-
Ubuntu 17.04:
-
सुडो
-
लेडैप 1.8.19p1-1ubuntu1.1
-
sudo
1.8.19p1-1ubuntu1.1
-
Ubuntu 16.10:
-
सुडो
-
लेडैप 1.8.16-0ubuntu3.2
-
sudo
1.8.16-0ubuntu3.2
-
Ubuntu 16.04 LTS:
- सुडो
-
लेडैप 1.8.16-0ubuntu1.4
-
sudo
1.8.16-0ubuntu1.4
-
Ubuntu 14.04 LTS:
- सुडो
-
लेडैप 1.8.9p5-1ubuntu1.4
-
sudo
1.8.9p5-1ubuntu1.4