มหาวิทยาลัยมินนิโซตาถูกระงับจากการพัฒนาเคอร์เนล Linux เนื่องจากส่งแพตช์ที่น่าสงสัย

Greg Kroah-Hartman ซึ่งรับผิดชอบในการรักษาสาขาที่เสถียรของเคอร์เนล Linux ได้ตัดสินใจห้ามไม่ให้ยอมรับการเปลี่ยนแปลงใดๆ ที่มาจากมหาวิทยาลัยมินนิโซตาในเคอร์เนล Linux และยังให้ย้อนกลับแพตช์ที่ยอมรับก่อนหน้านี้ทั้งหมดและตรวจสอบอีกครั้ง เหตุผลในการบล็อกคือกิจกรรมของกลุ่มวิจัยที่ศึกษาความเป็นไปได้ในการส่งเสริมช่องโหว่ที่ซ่อนอยู่ในโค้ดของโครงการโอเพ่นซอร์ส กลุ่มนี้ส่งแพตช์ที่มีข้อบกพร่องประเภทต่างๆ สังเกตปฏิกิริยาของชุมชน และศึกษาวิธีการโกงกระบวนการตรวจสอบการเปลี่ยนแปลง ตามที่ Greg กล่าวไว้ การทำการทดลองดังกล่าวเพื่อทำให้เกิดการเปลี่ยนแปลงที่เป็นอันตรายนั้นเป็นสิ่งที่ยอมรับไม่ได้และผิดหลักจริยธรรม

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

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

สิ่งที่น่าสนใจคือ ในอดีต ผู้นำกลุ่มที่ทำการทดลองมีส่วนร่วมในการแก้ไขช่องโหว่ที่ถูกต้องตามกฎหมาย เช่น การระบุข้อมูลรั่วไหลใน USB Stack (CVE-2016-4482) และระบบย่อยเครือข่าย (CVE-2016-4485) . ในการศึกษาเกี่ยวกับการเผยแพร่ช่องโหว่แบบซ่อนตัว ทีมงานจากมหาวิทยาลัยมินนิโซตาอ้างถึงตัวอย่างของ CVE-2019-12819 ซึ่งเป็นช่องโหว่ที่เกิดจากเคอร์เนลแพตช์ที่เผยแพร่ในปี 2014 การแก้ไขได้เพิ่มการเรียก put_device ไปยังบล็อกการจัดการข้อผิดพลาดใน mdio_bus แต่ห้าปีต่อมาปรากฏว่าการจัดการดังกล่าวนำไปสู่การเข้าถึงบล็อกหน่วยความจำหลังจากที่ถูกปลดปล่อย (“ใช้งานฟรี”)

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

เพิ่มเติม 1: ตัดสินจากกิจกรรมของผู้เขียนแพตช์ที่ถูกวิพากษ์วิจารณ์ เขาได้ส่งแพตช์ไปยังระบบย่อยเคอร์เนลต่างๆ มาเป็นเวลานาน ตัวอย่างเช่น ไดรเวอร์ radeon และ nouveau เพิ่งนำการเปลี่ยนแปลงมาใช้ด้วยการเรียก pm_runtime_put_autosuspend(dev->dev) ในบล็อกข้อผิดพลาด ซึ่งอาจทำให้บัฟเฟอร์ถูกใช้หลังจากเพิ่มหน่วยความจำที่เกี่ยวข้องแล้ว

ภาคผนวก 2: Greg ได้ย้อนกลับ 190 คอมมิตที่เกี่ยวข้องกับ "@umn.edu" และเริ่มการตรวจสอบอีกครั้ง ปัญหาคือสมาชิกที่มีที่อยู่ "@umn.edu" ไม่เพียงแต่ทดลองใช้แพตช์ที่น่าสงสัยเท่านั้น แต่ยังได้แพตช์ช่องโหว่ที่แท้จริงด้วย และการย้อนกลับการเปลี่ยนแปลงอาจส่งผลให้ปัญหาด้านความปลอดภัยที่แพตช์ก่อนหน้านี้กลับมาอีก ผู้ดูแลบางคนได้ตรวจสอบการเปลี่ยนแปลงที่คืนค่าแล้วอีกครั้งและไม่พบปัญหาใดๆ แต่ผู้ดูแลคนหนึ่งระบุว่าหนึ่งในแพตช์ที่ส่งถึงเขามีข้อผิดพลาด

ที่มา: opennet.ru

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