ช่องโหว่ 0 วันใน Chrome ระบุผ่านการวิเคราะห์การเปลี่ยนแปลงในกลไก V8

นักวิจัยจาก Exodus Intelligence ได้แสดงให้เห็น จุดอ่อนในกระบวนการแก้ไขช่องโหว่ในฐานโค้ดของ Chrome/Chromium ปัญหาเกิดจากการที่ Google เปิดเผยว่าแพตช์ที่สร้างจะแก้ไขปัญหาด้านความปลอดภัยหลังจากการเผยแพร่เท่านั้น แต่
เพิ่มโค้ดลงในที่เก็บเพื่อแก้ไขช่องโหว่ในเอ็นจิน V8 ก่อนการเผยแพร่ การแก้ไขจะได้รับการทดสอบเป็นระยะเวลาหนึ่ง และจะมีหน้าต่างปรากฏขึ้นเพื่อแก้ไขช่องโหว่ในฐานโค้ดและพร้อมสำหรับการวิเคราะห์ แต่ช่องโหว่ยังคงไม่ได้รับการแก้ไขในระบบของผู้ใช้

ขณะศึกษาการเปลี่ยนแปลงที่เกิดขึ้นกับที่เก็บข้อมูล นักวิจัยสังเกตเห็นบางสิ่งที่เพิ่มเข้ามาในวันที่ 19 กุมภาพันธ์ การแก้ไข และภายในสามวันก็สามารถเตรียมการได้ หาประโยชน์ซึ่งส่งผลกระทบต่อ Chrome เวอร์ชันปัจจุบัน (ช่องโหว่ที่เผยแพร่ไม่ได้รวมส่วนประกอบสำหรับการข้ามการแยกแซนด์บ็อกซ์) Google อย่างรวดเร็ว ปล่อยออกมา อัปเดต Chrome 80.0.3987.122 แก้ไขปัญหาที่เกี่ยวข้องกับช่องโหว่ที่เสนอ จุดอ่อน (CVE-2020-6418) ช่องโหว่นี้ถูกค้นพบครั้งแรกโดยวิศวกรของ Google และเกิดจากปัญหาการจัดการประเภทในการดำเนินการ JSCreate ซึ่งสามารถถูกโจมตีผ่านเมธอด Array.pop หรือ Array.prototype.pop ที่น่าสังเกตคือปัญหาที่คล้ายกันนี้เกิดขึ้น ที่ตายตัว ใน Firefox เมื่อซัมเมอร์ที่แล้ว

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

ที่น่าสนใจคือ เมื่อเกือบหนึ่งปีก่อน Exodus Intelligence ได้ เสร็จแล้ว มีการสาธิตที่คล้ายกันเกี่ยวกับความเป็นไปได้ในการสร้างช่องโหว่โดยอาศัยการศึกษาบันทึกแพตช์สาธารณะใน V8 แต่ดูเหมือนว่าจะยังไม่มีข้อสรุปใดๆ เกิดขึ้น ในมุมมองของนักวิจัย
Exodus Intelligence อาจเป็นแฮกเกอร์หรือหน่วยข่าวกรองที่หากพวกเขาสร้างช่องโหว่ขึ้นมา พวกเขาก็จะมีโอกาสแอบใช้ประโยชน์จากช่องโหว่นั้นได้เป็นเวลาหลายวันหรือหลายสัปดาห์ก่อนที่จะมีการเปิดตัว Chrome รุ่นถัดไป

ที่มา: opennet.ru