Tags:
Node Thumbnail

Tavis Ormandy จาก Project Zero ของกูเกิลรายงานถึงช่องโหว่ CVE-2021-43527 ในไลบรารี NSS (Network Security Services) สำหรับการเข้ารหัสและตรวจสอบลายเซ็นดิจิทัล ที่ใช้งานในซอฟต์แวร์จำนวนมากโดยเฉพาะ Firefox และ Thunderbird โดยพบช่องโหว่ที่เปิดทางให้แฮกเกอร์สามารถสร้างใบรับรองที่มุ่งร้ายจนรันโค้ดในเครื่องของเหยื่อได้เพียงแค่เปิดอ่านใบรับรอง

ช่องโหว่นี้เกิดจาก struct ที่ชื่อว่า VFYContext ที่เป็นโครงสร้างข้อมูลสำหรับการตรวจสอบใบรับรอง แต่กลับประกาศขนาดของลายเซ็นดิจิทัลไว้จำกัด ทำให้แฮกเกอร์สามารถสร้างใบรับรองที่มีลายเซ็นขนาดใหญ่มากจนล้นหน่วยความจำที่จองไว้ กลายเป็นการโจมตี heap overflow

ปัญหาของช่องโหว่นี้ไม่ใช่การโจมตีง่ายเป็นพิเศษแต่โครงการ NSS นั้นเป็นโครงการที่ถูกวงการความมั่นคงปลอดภัยสอดส่องอย่างหนัก ตัว Mozilla เองมีโครงการรายงานช่องโหว่ได้รางวัลมายาวนาน บริการตรวจความปลอดภัยโค้ดจำนวนมากสแกนความปลอดภัยของ NSS ตลอดเวลา แถมโครงการ NSS เองก็อยู่ในโครงการ oss-fuzz ที่สุ่มยิงข้อมูลหาจุดโหว่ของกูเกิลตั้งแต่แรก แต่บั๊กก็เล็ดลอดการตรวจสอบเหล่านั้นมาได้ทั้งหมด

โค้ดที่มีบั๊กนี้อยู่ในโครงการมาตั้งแต่ปี 2003 และถูก refactor จนถูกโจมตีได้ในปี 2012

Ormandy ระบุว่าแม้ Mozilla จะมีแนวทางรักษาความปลอดภัยที่ดีเยี่ยม แต่ก็ยังพลาดหลายจุดจนเกิดบั๊กนี้ เช่น การแยกส่วนทดสอบโค้ดจนกระทั่งไม่พบบั๊ก, ตัวยิงข้อมูลขยะ (Fuzzer) มักจำกัดขนาดข้อมูลที่จะยิงเข้าไป ทำให้หากตัวโค้ดจองหน่วยความจำไว้ใหญ่กว่าก็จะไม่พบบั๊ก

แม้ NSS จะใช้งานใน Firefox และ Thunderbird แต่ทั้งสองโครงการอาศัยไลบรารี mozilla::pkix ตรวจสอบใบรับรองอีกชั้นทำให้ไม่มีช่องโหว่นี้ แต่กับซอฟต์แวร์อื่นๆ ที่ใช้เฉพาะ NSS นั้นควรรีบอัพเดตโดยเร็ว เป็นเวอร์ชั่น 3.73.1 ขึ้นไป

ที่มา - Project Zero

No Description

Get latest news from Blognone