พบช่องโหว่ใน Ghostscript ที่อาจเปิดโอกาสให้มีการเรียกใช้โค้ด

ไม่กี่ที่ผ่านมา วันที่พวกเขาปล่อยข่าว สิ่งที่ระบุ ช่องโหว่ใน Ghostscript (CVE-2020-15900) อะไรได้ ทำให้เกิดการแก้ไขไฟล์และการดำเนินการคำสั่งโดยพลการ เมื่อเปิดเอกสาร PostScript ที่จัดรูปแบบพิเศษ

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

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

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

ข้อบกพร่องถูกระบุในการใช้ตัวดำเนินการ rsearch PostScript ที่ไม่ได้มาตรฐาน ในเอกสารที่อนุญาตให้เกิดการล้นเกินประเภท uint32_t เมื่อคำนวณขนาด เขียนทับพื้นที่หน่วยความจำออกจากบัฟเฟอร์ ได้รับมอบหมายและเข้าถึงไฟล์บนระบบไฟล์ซึ่งสามารถใช้ในการโจมตีเพื่อเรียกใช้รหัสบนระบบโดยพลการ (ตัวอย่างเช่นโดยการเพิ่มคำสั่งไปที่ ~ / .bashrc หรือ ~ / .profile)

ตัวอย่างข้อมูลที่ AFL พบจะผลักสตริงว่างลงบนสแต็ก: วงเล็บว่าง () คัดลอกการอ้างอิงถึงสิ่งนี้ส่งผลให้สแต็กมีสตริงว่างสองสตริง () () จากนั้นทำการค้นหาแบบย้อนกลับ กล่าวอีกนัยหนึ่งก็คือกำลังมองหาสตริงว่างในสตริงว่างโดยเริ่มจากจุดสิ้นสุด

น่าเสียดายที่พวกเขาพลาดกรณีเส้นเขตแดนที่มีการค้นหาสตริงว่าง เมื่อค้นหาสตริงว่างสิ่งนี้ถูกกำหนดให้เป็นความสำเร็จทันที: ไม่มีอะไรให้ค้นหาดังนั้นเราจึงข้ามไปที่จุดสิ้นสุด อย่างไรก็ตามผลลัพธ์จะต้องแบ่งออกเป็นค่าก่อนการแข่งขันการจับคู่และค่าหลังการแข่งขัน น่าเสียดายที่รหัสสันนิษฐานว่าเราได้ดูอย่างน้อยหนึ่งครั้งและคำนวณความยาวของผลลัพธ์หลังการแข่งขันอย่างไม่ถูกต้องโดยการลบหนึ่งออกจากศูนย์ส่งผลให้กลับไปเป็นค่าสูงสุด: 4,294,967,295

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

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

สิ่งสำคัญคือต้องคำนึงถึงสิ่งนั้น ช่องโหว่ใน Ghostscript นั้นร้ายแรงกว่าเนื่องจากแพคเกจนี้ใช้ในแอปพลิเคชั่นการประมวลผล PostScript และ PDF ที่เป็นที่นิยมมากมาย ตัวอย่างเช่น Ghostscript ถูกเรียกเมื่อสร้างภาพขนาดย่อบนเดสก์ท็อปเมื่อจัดทำดัชนีข้อมูลในพื้นหลังและเมื่อแปลงรูปภาพ

สำหรับการโจมตีที่ประสบความสำเร็จในหลาย ๆ กรณีก็เพียงพอแล้วที่จะดาวน์โหลดไฟล์ Exploit หรือเรียกดูไดเร็กทอรีด้วยไฟล์ใน Nautilus

ช่องโหว่ใน Ghostscript ยังสามารถใช้ประโยชน์ได้ผ่านไดรเวอร์ภาพ ขึ้นอยู่กับแพ็คเกจ ImageMagick และ GraphicsMagick ส่งผ่านไฟล์ JPEG หรือ PNG ซึ่งมีรหัส PostScript แทนรูปภาพ (ไฟล์นี้จะถูกประมวลผลใน Ghostscript เนื่องจากเนื้อหารับรู้ประเภท MIME และไม่ขึ้นอยู่กับส่วนขยาย)

ทางออก

ปัญหานี้มีผลกับเวอร์ชัน 9.50 ถึง 9.52 (ข้อบกพร่องมีมาตั้งแต่เวอร์ชัน 9.28rc1 แต่จากข้อมูลของนักวิจัยที่ระบุช่องโหว่พบว่าเกิดตั้งแต่เวอร์ชัน 9.50)

แต่มีการเสนอการแก้ไขแล้วในเวอร์ชัน 9.52.1 นอกเหนือจากนั้นและเผยแพร่การอัปเดตแล้ว ของแพทช์แพ็กเกจสำหรับลินุกซ์บางรุ่นเช่น Debian, Ubuntu และ SUSE

ในขณะที่แพ็คเกจใน RHEL จะไม่ได้รับผลกระทบ

Fuente: https://insomniasec.com


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

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

*

*

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