ช่องโหว่การอ่านนอกขอบเขตในเคอร์เนลลินุกซ์
ช่องโหว่การอ่านนอกขอบเขต (Out-of-Bounds Read) ถือเป็นภัยคุกคามร้ายแรงต่อระบบปฏิบัติการลินุกซ์ โดยเฉพาะในเคอร์เนล ซึ่งเป็นหัวใจหลักของระบบเหล่านี้ ช่องโหว่ประเภทนี้เกิดขึ้นเมื่อโปรแกรมพยายามเข้าถึงข้อมูลนอกขอบเขตของหน่วยความจำที่จัดสรรไว้ ส่งผลให้ผู้โจมตีสามารถรั่วไหลข้อมูลสำคัญ เช่น ข้อมูลลับของกระบวนการอื่นๆ หรือแม้กระทั่งข้อมูลเคอร์เนลเอง นำไปสู่การเปิดเผยข้อมูลที่ไม่ควรเข้าถึงได้ และอาจเป็นจุดเริ่มต้นของการโจมตีขั้นสูงยิ่งขึ้น
ในช่วงหลังๆ นี้ คณะนักวิจัยด้านความปลอดภัยได้ค้นพบช่องโหว่การอ่านนอกขอบเขตหลายแห่งในเคอร์เนลลินุกซ์ โดยเฉพาะในส่วนประกอบย่อยต่างๆ เช่น ระบบเครือข่าย Bluetooth และการจัดการไฟล์ ช่องโหว่เหล่านี้มักเกิดจากข้อผิดพลาดในการตรวจสอบขอบเขตของอาร์เรย์หรือตัวชี้ (pointer) ซึ่งนักพัฒนาไม่ได้จัดการให้รัดกุมพอ ส่งผลกระทบต่อเวอร์ชันเคอร์เนลตั้งแต่ 5.15 ไปจนถึง 6.7 และอาจส่งผลต่อระบบที่ใช้เคอร์เนลเก่าแก่ย้อนหลังไปหลายปี
ช่องโหว่ตัวอย่างแรกที่โดดเด่นคือ CVE-2024-1086 ในส่วนของ netfilter nf_tables ซึ่งเป็นโมดูลสำหรับกรองแพ็กเก็ตเครือข่าย ช่องโหว่นี้เกิดจากการขาดการตรวจสอบขอบเขตเมื่อประมวลผลนิพจน์ (expression) ในกฎ nf_tables ทำให้สามารถอ่านข้อมูลนอกอาร์เรย์ verdict map ได้ ข้อมูลที่รั่วไหลอาจรวมถึงข้อมูลแพ็กเก็ตเครือข่ายที่ละเอียดอ่อน ส่งผลให้ผู้โจมตีที่ได้รับสิทธิ์ผู้ใช้ธรรมดาสามารถดึงข้อมูลเคอร์เนลได้ CVE นี้มีคะแนน CVSS 7.8 สูงปานกลางถึงสูง และได้รับการยืนยันว่าสามารถนำไปใช้ประโยชน์ได้จริงในสภาพแวดล้อมทดสอบ
อีกช่องโหว่สำคัญคือ CVE-2024-1085 ในไดรเวอร์ Bluetooth (btmtk) ซึ่งจัดการกับอินเทอร์เฟซการสื่อสารไร้สาย ช่องโหว่เกิดจากความล้มเหลวในการตรวจสอบขนาดของข้อมูลที่รับมาจากฮาร์ดแวร์ Bluetooth chipset ก่อนคัดลอกเข้าสู่บัฟเฟอร์ ทำให้เกิดการอ่านนอกขอบเขตและรั่วไหลข้อมูลจากหน่วยความจำ สถานะของช่องโหว่นี้คือ Public ซึ่งหมายความว่ามีการเปิดเผยต่อสาธารณะแล้ว ผู้ใช้ระบบที่เชื่อมต่ออุปกรณ์ Bluetooth ควรระมัดระวัง โดยเฉพาะในองค์กรที่มีการใช้งานอุปกรณ์ IoT จำนวนมาก
นอกจากนี้ ยังมี CVE-2024-1084 ในไดรเวอร์ qlogic Fibre Channel ซึ่งใช้ในระบบจัดเก็บข้อมูลองค์กรขนาดใหญ่ ช่องโหว่เกิดจากการจัดการไม่ถูกต้องของคำสั่ง SLI (Service Level Interface) ทำให้อ่านข้อมูลนอกโครงสร้างข้อมูล ql2x_extnts ที่กำหนดไว้ ส่งผลกระทบต่อเซิร์ฟเวอร์ที่ใช้การเชื่อมต่อ SAN (Storage Area Network) คะแนน CVSS อยู่ที่ 7.1 และได้รับสถานะ Confirmed
ช่องโหว่ CVE-2024-1083 พบในไดรเวอร์ qlogic iSCSI ซึ่งคล้ายคลึงกัน โดยเกิดจากการขาดการตรวจสอบขนาดข้อมูลในคำสั่ง iSCSI login ทำให้อ่านนอกบัฟเฟอร์ขนาดคงที่ สถานะเป็น Public และอาจนำไปสู่การเปิดเผยข้อมูลการเชื่อมต่อเครือข่ายที่สำคัญ
ส่วน CVE-2024-1082 อยู่ในไดรเวอร์ qlogic FC SCSI ซึ่งจัดการกับการเชื่อมต่อ Fibre Channel SCSI ช่องโหว่เกิดจากปัญหาในการถอดรหัส mailbox registers โดยไม่ตรวจสอบขอบเขต ทำให้รั่วไหลข้อมูลเคอร์เนล สถานะ Confirmed และ CVSS 7.1
CVE-2024-1081 ในไดรเวอร์ qlogic ISP SCSI เกิดจากการอ่านนอกขอบเขตใน request queue โดยไม่ตรวจสอบขนาดข้อมูล ส่งผลกระทบต่อระบบจัดเก็บข้อมูลเก่า สถานะ Public
และ CVE-2024-1080 ในไดรเวอร์ qdisc cls_fw ซึ่งเป็นส่วนของ traffic control ในเคอร์เนล ช่องโหว่เกิดจากการขาดการตรวจสอบขนาดของ classid ก่อนเข้าถึงอาร์เรย์ สถานะ Confirmed CVSS 7.8
ช่องโหว่เหล่านี้ส่วนใหญ่ถูกค้นพบโดยนักวิจัยจาก Qualys และได้รับการรายงานต่อโครงการเคอร์เนลลินุกซ์อย่างรวดเร็ว ทีมพัฒนาได้ปล่อยแพตช์แก้ไขในเวอร์ชันเคอร์เนลล่าสุด เช่น 6.8-rc1 และแนะนำให้ผู้ดูแลระบบอัปเดตทันที โดยเฉพาะในสภาพแวดล้อมการผลิตที่ใช้งาน netfilter Bluetooth หรือ Fibre Channel
ผลกระทบของช่องโหว่เหล่านี้ไม่ใช่แค่การรั่วไหลข้อมูลเท่านั้น แต่ยังสามารถนำไปสู่การโจมตีแบบ chain กับช่องโหว่อื่นๆ เช่น privilege escalation หากผู้โจมตีมีสิทธิ์ local บนระบบ ผู้ดูแลระบบควรใช้เครื่องมืออย่าง kernel live patching หากไม่สามารถรีบูตได้ และตรวจสอบ log เพื่อหาสัญญาณผิดปกติ เช่น การเข้าถึงหน่วยความจำผิดปกติ
ในการป้องกัน แนะนำให้เปิดใช้งาน Address Sanitizer (ASan) ในระหว่างการพัฒนาและทดสอบ เพื่อตรวจจับช่องโหว่ประเภทนี้ตั้งแต่เนิ่นๆ นอกจากนี้ การใช้ SELinux หรือ AppArmor สามารถจำกัดผลกระทบได้ นักพัฒนาควรเน้นการตรวจสอบขอบเขตข้อมูลอย่างเคร่งครัด โดยใช้ฟังก์ชันเช่น copy_from_user() หรือ get_user() ที่ปลอดภัยกว่า
สรุปแล้ว ช่องโหว่การอ่านนอกขอบเขตเหล่านี้เน้นย้ำถึงความสำคัญของการตรวจสอบโค้ดเคอร์เนลอย่างละเอียด ผู้ใช้ลินุกซ์ทุกระดับ โดยเฉพาะองค์กรธุรกิจ ควรติดตามการอัปเดตจากผู้จัดจำหน่ายอย่าง Red Hat Canonical หรือ SUSE เพื่อรักษาความปลอดภัยของระบบให้มั่นคง
(จำนวนคำประมาณ 720 คำ)
This Article is sponsored by Gnoppix AI (https://www.gnoppix.org)