ช่องโหว่ใน SQLite ที่ทำให้เกิดการโจมตีระยะไกลบน Chrome ผ่าน WebSQL

นักวิจัยด้านความปลอดภัยจากบริษัท Tencent ของจีน นำเสนอ ช่องโหว่รูปแบบใหม่ เจลลัน (CVE-2019-13734) ซึ่งช่วยให้คุณบรรลุผลการเรียกใช้โค้ดเมื่อประมวลผลโครงสร้าง SQL ที่ออกแบบด้วยวิธีใดวิธีหนึ่งใน SQLite DBMS มีช่องโหว่ที่คล้ายกัน เผยแพร่แล้ว โดยนักวิจัยคนเดียวกันเมื่อปีที่แล้ว ช่องโหว่นี้มีความโดดเด่นตรงที่อนุญาตให้โจมตีเบราว์เซอร์ Chrome จากระยะไกล และสามารถควบคุมระบบของผู้ใช้เมื่อเปิดหน้าเว็บที่ควบคุมโดยผู้โจมตี

การโจมตี Chrome/Chromium ดำเนินการผ่าน WebSQL API ซึ่งเป็นตัวจัดการที่ใช้โค้ด SQLite การโจมตีแอปพลิเคชั่นอื่นจะเกิดขึ้นได้ก็ต่อเมื่อพวกเขาอนุญาตให้ถ่ายโอนโครงสร้าง SQL ที่มาจากภายนอกไปยัง SQLite เช่น ใช้ SQLite เป็นรูปแบบสำหรับการแลกเปลี่ยนข้อมูล Firefox ไม่มีช่องโหว่เพราะ Mozilla ปฏิเสธ จากการนำ WebSQL ไปใช้ ประโยชน์ IndexedDB API

Google แก้ไขปัญหาในการเปิดตัว 79 Chrome- มีปัญหาในโค้ดเบส SQLite ที่ตายตัว 17 พฤศจิกายน และในโค้ดเบส Chromium - พฤศจิกายน 21.
ปัญหามีอยู่ใน รหัส เครื่องมือค้นหาข้อความแบบเต็ม FTS3 และผ่านการจัดการตารางเงา (ตารางเสมือนชนิดพิเศษที่มีความสามารถในการเขียนได้) สามารถนำไปสู่ความเสียหายของดัชนีและบัฟเฟอร์ล้นได้ ข้อมูลโดยละเอียดเกี่ยวกับเทคนิคการปฏิบัติงานจะได้รับการเผยแพร่หลังจากผ่านไป 90 วัน

SQLite รุ่นใหม่พร้อมการแก้ไขในตอนนี้ ไม่ได้เกิดขึ้น (ที่คาดหวัง วันที่ 31 ธันวาคม) วิธีแก้ปัญหาด้านความปลอดภัย เริ่มต้นจาก SQLite 3.26.0 โดยสามารถใช้โหมด SQLITE_DBCONFIG_DEFENSIVE ได้ ซึ่งจะปิดใช้งานการเขียนลงในตารางเงา และแนะนำให้รวมไว้เมื่อประมวลผลคำสั่ง SQL ภายนอกใน SQLite ในชุดการแจกจ่าย ช่องโหว่ในไลบรารี SQLite ยังคงไม่มีการแก้ไข debian, อูบุนตู, RHEL, openSUSE / SUSE, Arch ลินุกซ์, Fedora, FreeBSD- Chromium ในการกระจายทั้งหมดได้รับการอัปเดตแล้วและไม่ได้รับผลกระทบจากช่องโหว่ แต่ปัญหาอาจส่งผลกระทบต่อเบราว์เซอร์และแอปพลิเคชันบุคคลที่สามต่างๆ ที่ใช้เครื่องมือ Chromium รวมถึงแอปพลิเคชัน Android ที่ใช้ Webview

นอกจากนี้ยังมีการระบุปัญหาอันตรายน้อยกว่า 4 ปัญหาใน SQLite (CVE-2019-13750, CVE-2019-13751, CVE-2019-13752, CVE-2019-13753) ซึ่งอาจนำไปสู่การรั่วไหลของข้อมูลและการหลีกเลี่ยงข้อจำกัด (สามารถใช้เป็นปัจจัยที่เอื้อต่อการโจมตี Chrome) ปัญหาเหล่านี้ได้รับการแก้ไขแล้วในโค้ด SQLite เมื่อวันที่ 13 ธันวาคม เมื่อนำมารวมกัน ปัญหาดังกล่าวทำให้นักวิจัยสามารถเตรียมช่องโหว่การทำงานที่อนุญาตให้เรียกใช้โค้ดในบริบทของกระบวนการ Chromium ที่รับผิดชอบในการเรนเดอร์

ที่มา: opennet.ru

เพิ่มความคิดเห็น