ช่องโหว่ใน Vim อนุญาตให้เรียกใช้โค้ดเมื่อเปิด TXT

เป็นกลุ่ม

ช่องโหว่ใหม่ได้รับการแก้ไขในโปรแกรมแก้ไขข้อความที่ติดตั้งไว้ล่วงหน้าในการแจกแจงต่างๆ พบลินุกซ์ ในโปรแกรมแก้ไขข้อความ Vim และ Neovim (CVE-2019-12735)

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

Vim และส้อม NeoVim มีข้อบกพร่องที่อยู่ใน modelines คุณลักษณะนี้ช่วยให้ผู้ใช้สามารถระบุขนาดหน้าต่างและตัวเลือกแบบกำหนดเองอื่น ๆ ที่อยู่ใกล้จุดเริ่มต้นหรือจุดสิ้นสุดของไฟล์ข้อความ

คุณลักษณะนี้เปิดใช้งานโดยค่าเริ่มต้นในเวอร์ชันก่อน Vim 8.1.1365 Neovim 0.3.6 และใช้กับไฟล์ทุกประเภทรวมถึงไฟล์. txt

เกี่ยวกับช่องโหว่ใน Vim

ผ่าน Modeline อนุญาตให้มีตัวเลือกจำนวน จำกัด เท่านั้น สหากระบุนิพจน์เป็นค่าตัวเลือกนิพจน์จะทำงานในโหมดแซนด์บ็อกซ์ซึ่งอนุญาตให้ใช้เฉพาะการดำเนินการที่ปลอดภัยที่ง่ายที่สุดเท่านั้น

ในเวลาเดียวกัน คำสั่ง ": source" เป็นหนึ่งในคำสั่งที่อนุญาตซึ่งคุณสามารถใช้ตัวปรับแต่ง "!" เพื่อเรียกใช้คำสั่งโดยพลการจากไฟล์ที่ระบุ

ดังนั้นในการรันโค้ดจึงเพียงพอที่จะระบุในบรรทัด modeline การสร้างแบบฟอร์ม "set foldexpr = execute ('\: source! some_file'):" ใน Neovim การเรียกการดำเนินการเป็นสิ่งต้องห้าม แต่สามารถใช้ assert_fails แทนได้

ในทางกลับกันในแซนด์บ็อกซ์ได้รับการออกแบบมาเพื่อป้องกันผลข้างเคียง:

ตัวเลือก "foldexpr", "formatexpr", "includingeexpr", "indentexpr", "statusline" และ "foldtext" ทั้งหมดสามารถประเมินได้ในแซนด์บ็อกซ์ ซึ่งหมายความว่าคุณได้รับการปกป้องจากการแสดงออกเหล่านี้ที่มีผลข้างเคียงที่ไม่พึงประสงค์ สิ่งนี้ให้ความปลอดภัยบางอย่างเมื่อตัวเลือกเหล่านี้ถูกกำหนดจากแบบจำลอง

ในขณะที่โมเดล จำกัด คำสั่งที่มีอยู่และดำเนินการในสภาพแวดล้อมที่แยกออกจากระบบปฏิบัติการ นักวิจัย Armin Razmjou ตั้งข้อสังเกตว่าคำสั่ง: font! หลีกเลี่ยงการป้องกันนี้:

"เธออ่านและเรียกใช้คำสั่งในไฟล์ที่กำหนดราวกับว่ามีการป้อนด้วยตนเองโดยจะดำเนินการเมื่อเหลือแซนด์บ็อกซ์" นักวิจัยเขียนในข้อความที่เผยแพร่เมื่อต้นเดือนนี้ -ci.

ดังนั้นเราสามารถสร้างบรรทัดแบบจำลองที่เรียกใช้โค้ดนอกแซนด์บ็อกซ์ได้เล็กน้อย

โพสต์มีไฟล์ข้อความที่มีหลักฐานยืนยันหลักการสองไฟล์ซึ่งหนึ่งในนั้นแสดงให้เห็นภาพของภัยคุกคาม

หนึ่งในนั้นเปิดเปลือกย้อนกลับบนคอมพิวเตอร์ที่ใช้ Vim หรือ NeoVim จากนั้นผู้โจมตีสามารถเรียกใช้คำสั่งที่ต้องการได้ที่เครื่องที่ขออนุญาต

"PoC นี้อธิบายถึงวิธีการโจมตีที่แท้จริงซึ่งมีการเปิดเชลล์ย้อนกลับเมื่อผู้ใช้เปิดไฟล์" Razmjou เขียน «เพื่อซ่อนการโจมตีไฟล์จะถูกเขียนใหม่ทันทีเมื่อเปิดขึ้น นอกจากนี้ PoC ยังใช้ลำดับการหลีกเลี่ยงเทอร์มินัลเพื่อซ่อนบรรทัดโมเดลเมื่อพิมพ์เนื้อหาด้วย cat (cat -v เปิดเผยเนื้อหาจริง) «

ช่องโหว่ในการดำเนินการคำสั่งต้องการการเปิดใช้งานฟังก์ชันการสร้างแบบจำลองมาตรฐานเช่นเดียวกับลีนุกซ์บางรุ่นโดยค่าเริ่มต้น พบข้อบกพร่องใน Vim ก่อนเวอร์ชัน 8.1.1365 และใน Neovim ก่อนเวอร์ชัน 0.3.6

คำแนะนำนี้จากฐานข้อมูลช่องโหว่แห่งชาติของสถาบันมาตรฐานและเทคโนโลยีแห่งชาติแสดงให้เห็นว่าการกระจาย Debian และ Fedora Linux ได้เริ่มปล่อยเวอร์ชันคงที่แล้ว

ในการแจกแจงปัญหาจะได้รับการแก้ไขใน RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux และ ALT

ช่องโหว่นี้ยังคงไม่ได้รับการแก้ไขใน Debian (ใน Debian modeline จะถูกปิดใช้งานโดยค่าเริ่มต้นดังนั้นช่องโหว่จะไม่ปรากฏในสถานะเริ่มต้น)

MacOS เวอร์ชันล่าสุดยังคงใช้เวอร์ชันที่มีช่องโหว่แม้ว่าการโจมตีจะใช้ได้เฉพาะเมื่อผู้ใช้เปลี่ยนการตั้งค่าเริ่มต้นที่เปิดใช้งานคุณสมบัติ modelines


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

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

*

*

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