ช่องโหว่ในเคอร์เนล Linux ที่สามารถทำให้เกิดความเสียหายโดยการส่งแพ็กเก็ต UDP

ในเคอร์เนล Linux ระบุ ช่องโหว่ (CVE-2019-11683) ซึ่งช่วยให้คุณทำให้เกิดการปฏิเสธการให้บริการจากระยะไกลโดยการส่งแพ็กเก็ต UDP ที่ออกแบบมาเป็นพิเศษ (แพ็กเก็ตแห่งความตาย) ปัญหาเกิดจากข้อผิดพลาดในตัวจัดการ udp_gro_receive_segment (net/ipv4/udp_offload.c) ด้วยการนำเทคโนโลยี GRO (Generic Receiver Offload) ไปใช้ และอาจนำไปสู่ความเสียหายของเนื้อหาในพื้นที่หน่วยความจำเคอร์เนลเมื่อประมวลผลแพ็กเก็ต UDP โดยไม่มีช่องว่างภายในเป็นศูนย์ (เพย์โหลดว่างเปล่า)

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

จนถึงขณะนี้ช่องโหว่ได้รับการแก้ไขในรูปแบบเท่านั้น ปะการอัปเดตแก้ไขยังไม่ได้เผยแพร่ (การแก้ไขอัปเดต 5.0.11 เมื่อวานนี้ ไม่รวม). จากชุดการแจกจ่าย เคอร์เนล 5.0 สามารถรวมเข้าด้วยกันได้ Fedora 30, อูบุนตู 19.04, Arch ลินุกซ์, Gentoo และการแจกแจงที่อัปเดตอย่างต่อเนื่องอื่น ๆ debian, Ubuntu 18.10 และรุ่นก่อนหน้า, RHEL/CentOS и SUSE/เปิดSUSE ปัญหาไม่ส่งผลกระทบ

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

ที่มา: opennet.ru

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