मैं डेबियन परीक्षण / जेसी में शेलशॉक सुरक्षा भेद्यता को कैसे ठीक करूं?


24

परीक्षण की आज्ञा

x='() { :;}; echo vulnerable' bash

यह दर्शाता है कि मेरे डेबियन 8 (जेसी) की स्थापना नवीनतम अद्यतन के साथ भी असुरक्षित है। अनुसंधान से पता चलता है कि स्थिर और अस्थिर के लिए एक पैच है, लेकिन यह परीक्षण अप्रभावित है।

मुझे लगता है कि पैच कुछ दिनों में परीक्षण करने के लिए बना देगा, लेकिन यह वास्तव में बुरा लग रहा है के बारे में पागल हो। क्या पैकेज को अस्थिर करने और मेरे सिस्टम को तोड़ने के बिना इसे स्थापित करने का कोई तरीका है? अस्थिर दिखने पर अपग्रेड करने से ऐसा लगता है कि इससे समस्याएँ हल हो जाएंगी।


बॉब के अनुसार, एक दूसरा शेलशॉक भेद्यता है, जिसे एक दूसरे पैच में तय किया गया है। इसके लिए परीक्षण होना चाहिए:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

लेकिन मैं बश में पर्याप्त कुशल नहीं हूं कि यह काम करने का क्या मतलब है या यह समस्या क्यों है। किसी भी दर पर, यह कुछ अजीब करता है, जिसे 64-बिट सिस्टम पर bash_4.3-9.2_amd64.deb द्वारा रोका जाता है, जो संपादन के समय स्थिर और अस्थिर है लेकिन जेसी / परीक्षण में नहीं है ।

जेसी के लिए इसे ठीक करने के लिए , अस्थिर से नवीनतम बैश प्राप्त करें और इसे स्थापित करें dpkg -i

Jemenake प्रदान करता है

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

एक कमांड के रूप में जिसे आपकी मशीन के लिए 4.3-9.2 संस्करण मिलेगा।

और आप इसका अनुसरण कर सकते हैं:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

इसे स्थापित करने के लिए।

क्या आपको अपने जेसी सिस्टम के लिए अस्थिर से आगे पैच की आवश्यकता है, यह स्पष्ट रूप से जाने का रास्ता है ( म्यूटेटिस म्यूटेंडिस )।

जवाबों:


5

इस लिंक के माध्यम से अस्थिर से पैकेज डाउनलोड करें । आप वहाँ पर निर्भरताएँ भी देख सकते हैं, हालाँकि ऐसा लगता है कि अस्थिर बैश के परीक्षण के बाश के समान ही निर्भरताएँ हैं। निम्नलिखित के साथ डाउनलोड की गई डिबेट स्थापित करें।

dpkg -i

1
धन्यवाद, मैंने ऐसा किया और इसने बिना किसी चीज़ को नष्ट किए समस्या को ठीक कर दिया। संभवत: यह अंततः अपडेट के सामान्य पाठ्यक्रम में ओवरराइट हो जाएगा?
जॉन लॉरेंस एस्पेन

3
यदि आप किसी GUI में ब्राउज़र चला रहे हैं तो उपरोक्त लिंक ठीक है। यदि आप एक शेल सत्र में lynx चला रहे हैं तो कम। यदि आप कुछ चाहते हैं तो आप इसे हथियाने के लिए अपने कमांड-लाइन में सही पेस्ट कर सकते हैं, कोशिश करें: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb यह आपके बॉक्स के लिए सही वास्तुकला प्राप्त करेगा।
जमैके

1
@Jemenake आपको एक अलग उत्तर के रूप में पोस्ट करना चाहिए।
Excellll

यह निश्चित रूप से वह उत्तर था जो मैं चाहता था, लेकिन अब जब अद्यतन ने इसे जेसी के लिए बनाया है, तो मुझे लगता है कि यह बेहतर है यदि स्वीकृत उत्तर वह है जिसे लोग अब देख रहे हैं, इसलिए मैं टिक जा रहा हूं। हालांकि धन्यवाद!
जॉन लॉरेंस एस्पेन

वास्तव में, दो शेलशॉक बग हैं, और दूसरे के लिए फिक्स अब साइड में है लेकिन जेसी नहीं है, इसलिए यह वास्तव में अभी भी सही उत्तर है, (सुनिश्चित करें कि आपको 4.3-9.2 मिलता है!), हालांकि निस्संदेह स्थिति का समाधान होगा! जल्द ही।
जॉन लॉरेंस एस्पेन

25

मैंने सोमवार को जारी किए गए अतिरिक्त बैश फिक्स के लिए इस उत्तर को संपादित किया है।

उबंटू 12.04 के लिए, मैंने एक अपडेट चलाया, लेकिन भेद्यता से छुटकारा पाने के लिए बैश के लिए इंस्टॉल भी चलाना पड़ा।

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

यह कमांड दिखाता है कि सिस्टम कमजोर है, इसलिए अपडेट चलाएं।

apt-get update && apt-get -y upgrade

फिर से परीक्षण करें।

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

फिर भी असुरक्षित है।

apt-get install -y bash

फिर से परीक्षण करें।

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

संपादित करें: अतिरिक्त पैच जारी होने के बाद, आउटपुट बदल गया है।

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

वाह! फिक्स्ड। यह अन्य संस्करणों के लिए काम करना चाहिए, लेकिन मैंने इसे 12.04 से आगे का परीक्षण नहीं किया है।

इसके अलावा, रनमोक का जवाब नीचे अच्छी तरह से काम करता है, इसलिए उसे उत्थान दें!


6
बस apt-get update && apt-get install -y bashकाम करने लगता है।
रानामोक

@JabawokJayUK के उत्तर के आधार पर, मैं उबंटू में 12.04 में अपडेट के बाद भी पहले टेस्ट में असफल रहा हूं।
बिड़ला

मैं केवल प्राप्त कर रहा हूं this is a testलेकिन त्रुटि और चेतावनी नहीं। मेरी स्थानीय मशीन में मुझे त्रुटि मिलती है, लेकिन मेरे सर्वर में नहीं। वह खसरा क्या है? क्या मेरा सर्वर पैचेड है? धन्यवाद।
ElBaulP

ऐसा लगता है कि रिपॉजिटरी अब तक अद्यतित है, क्योंकि मुझे एपेट-गेट स्थापित -y स्टेप नहीं करना था, अपग्रेड के बाद समस्या हल हो गई थी।
user316566

1
यह वास्तव में डेबियन परीक्षण / जेसी के बारे में सवाल का जवाब नहीं देता है । उबंटू स्वतंत्र पैकेज रिपॉजिटरी और पैचिंग शेड्यूल के साथ एक अलग वितरण है।
बॉब

16

डेबियन 7 (व्हीजी) से पैकेज लाने के बिना डेबियन 6.0 (निचोड़) के लिए एक विकल्प:

पैच बैकपोर्ट वाले LTS सुरक्षा रिपॉजिटरी का उपयोग करें।

इसे इसमें जोड़ें /etc/apt/sources.list:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

फिर चला apt-get update && apt-get install bash

वाया: लिनेक्विस्टेशन


डेबियन के लिए काम करता है 6. हम हमेशा सूची में एलटीसी सुरक्षा रखेंगे!
stanleyxu2005

4

apt-get updateपहले apt-get dist-upgradeऔर आपको पैच मिलेगा। बस इसे खुद किया और एक बैश अपग्रेड था जो समस्या को ठीक करता है।


2
समस्या यह थी कि डेबियन परीक्षण में अभी तक अद्यतन पैकेज नहीं था, इसलिए इसे अस्थिर से मैन्युअल रूप से डाउनलोड करना और इंस्टॉल करना उस समय सबसे सरल फिक्स था; इस उत्तर में दिए गए समाधान से काम नहीं चला होगा। (शायद अब तक यह हो जाएगा, क्योंकि पैकेज परीक्षण के लिए माइग्रेट हो सकता है।)
7

यह मूल प्रश्न का उत्तर नहीं देता है, लेकिन यह है कि लोगों को अब क्या करने की आवश्यकता है, इसलिए मैं इसे स्वीकार कर रहा हूं ताकि यह पहली चीज हो जिसे लोग देखेंगे। मेरी कठिनाई के लिए 'वास्तविक' उत्तर (यह अस्थिर और स्थिर है, लेकिन परीक्षण में नहीं है) नए बैश के मैनुअल डाउनलोड का उपयोग करके wurtel का उत्तर है - ????। डिबेट और dpkg -i।
जॉन लॉरेंस एस्पेन

मुझे भी लगता है कि यह उबंटू के लिए जवाब है, अब जब उन्होंने अपने फिक्स को ठीक से धकेल दिया है, और शायद किसी अन्य डेबियन आधारित वितरण के लिए जो अभी भी उस बिंदु पर बनाए रखा गया है जहां लोगों ने फिक्स को धक्का दिया है।
जॉन लॉरेंस एस्पेन

वास्तव में दो शेलशॉक बग हैं और दूसरे के लिए फिक्स ने इसे अभी तक जेसी नहीं बनाया है।
जॉन लॉरेंस एस्पेन

यह अभी भी एक वैध समाधान है और तब तक रहेगा जब तक डेबियन परीक्षण सुरक्षा टीम अपडेट को आगे बढ़ा रही है; ओपी प्रश्न के समय परीक्षण में उनके पास नहीं था। एक अन्य विकल्प डैश का उपयोग करने के लिए सभी उपयोगकर्ताओं को सेट कर रहा है। यह मुख्य रूप से एक सर्वर मुद्दा है और नहीं
MGD_Toronto


1

मैंने इस बारे में एक लेख लिखा है कि पुराने उबंटू संस्करणों पर इसे कैसे करें। आप मूल रूप से अपने source.list को नवीनतम में अपडेट करते हैं और फिर apt-get अपडेट और अपग्रेड बैश चलाते हैं। आप इसे चरण दर चरण पढ़ सकते हैं या इसे यहाँ से कॉपी कर सकते हैं ।

सारांश:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

यदि आप पुराने-releases.ubuntu.com का उपयोग करते हैं तो लेख पढ़ें और यह न भूलें कि आप इसे वापस बदलना चाहते हैं:

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list

उह ... यह आपके सिस्टम को source.list में भरोसेमंद छोड़ देगा। अगली बार जब आप अपडेट करेंगे, तो सिस्टम ट्रस्टी में अपग्रेड हो जाएगा। यह कभी भी आपके सिस्टम को तोड़ देगा।
स्ट्रूजी

1

बैश पैकेज के लिए निर्धारित संस्करण (देखें चैंज ) को 2014-09-26 14:18 यूटीसी के अनुसार अब डेबियन 8 (जेसी) में देखें ( पैकेज की जानकारी देखें )।

नीचे दिए गए टिप्पणियों में उल्लिखित दूसरा फिक्स, अब जेसी भंडार में भी है । अस्थिर से स्थापित करने की कोई आवश्यकता नहीं है। ऊपर पैकेज जानकारी लिंक देखें।

अस्थिर से किसी भी अधिक स्थापित करने की आवश्यकता नहीं है।

बस दौडो:

# aptitude update

के बाद:

# aptitude upgrade

फिर सत्यापित करें कि भेद्यता चली गई है (एक नए खुले शेल में):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'

अभी तक अनुवर्ती CVE-2014-7169 को ठीक नहीं करता है।
बॉब

@ मुझे लगता है कि यह केवल उबंटू के लिए प्रासंगिक है? और संभवतः उबंटू ने इसे पहले ही तय कर लिया है।
जॉन लॉरेंस एस्पेन

@ जॉनलोन्सनस्पेन नोप। दौड़ने की कोशिश करें env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- अगर यह प्रिंट करता है still vulnerable, तो बाद वाला वुल्न अभी तक पैच नहीं किया गया है। AFAIK, jessie अभी भी असुरक्षित है। ध्यान दें कि कमांड echoसफल होने पर वर्तमान निर्देशिका में नामित एक फ़ाइल बनाएगा , और आपको परीक्षण को फिर से चलाने से पहले इसे हटाना होगा।
बॉब

@ याकूब, मैं सिर या पूँछ नहीं बना सकता, अर्धविराम तक क्या है?
जॉन लॉरेंस एस्पेन

@ याकूब, लेकिन जो भी करता है, आप सही हैं कि अस्थिर में 4.3-9.2 संस्करण में अपग्रेड करना बंद कर देता है!
जॉन लॉरेंस एस्पेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.