หากถูกโจมตี ข้อบกพร่องเหล่านี้อาจทำให้ผู้โจมตีเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต หรือก่อให้เกิดปัญหาโดยทั่วไป
ข้อมูลเพิ่งออกว่า มีการค้นพบช่องโหว่เคอร์เนลของลินุกซ์ ด้วยคะแนน CVSS เท่ากับ 10 บนเซิร์ฟเวอร์ SMBทำให้ผู้ใช้ที่ไม่ได้รับการตรวจสอบสิทธิ์สามารถรันโค้ดจากระยะไกลได้
จุดบกพร่องที่พบทำให้ผู้โจมตีจากระยะไกลสามารถเรียกใช้รหัสโดยอำเภอใจในการติดตั้งที่ได้รับผลกระทบ การตรวจสอบสิทธิ์ไม่จำเป็นต้องใช้ช่องโหว่นี้ แต่เฉพาะระบบที่เปิดใช้งาน ksmbd เท่านั้นที่มีช่องโหว่
มีข้อบกพร่องเฉพาะในการประมวลผลคำสั่ง SMB2_TREE_DISCONNECT ปัญหาเกิดจากการไม่ตรวจสอบว่าวัตถุมีอยู่ก่อนดำเนินการกับวัตถุนั้น ผู้โจมตีสามารถใช้ช่องโหว่นี้เพื่อรันโค้ดในบริบทของเคอร์เนล
รายละเอียดช่องโหว่
ช่องโหว่นี้ทำให้ผู้โจมตีจากระยะไกลสามารถเรียกใช้รหัสโดยอำเภอใจในการติดตั้ง Linux Kernel ที่ได้รับผลกระทบ ไม่จำเป็นต้องมีการยืนยันตัวตนเพื่อใช้ช่องโหว่นี้ แต่เฉพาะระบบที่เปิดใช้งาน ksmbd เท่านั้นที่มีช่องโหว่ข้อบกพร่องเฉพาะมีอยู่ในการประมวลผลคำสั่ง SMB2_TREE_DISCONNECT ปัญหาเกิดจากการขาดการตรวจสอบการมีอยู่ของวัตถุก่อนที่จะดำเนินการกับวัตถุ ผู้โจมตีสามารถใช้ช่องโหว่นี้เพื่อรันโค้ดในบริบทของเคอร์เนล
มีการกล่าวถึงว่าขึ้นอยู่กับประเภทของคำขอ SMB แต่ละเธรดใหม่อาจตัดสินใจส่งคำสั่งไปยังพื้นที่ผู้ใช้ (ksmbd.mountd); ปัจจุบัน คำสั่ง DCE/RPC ถูกระบุให้จัดการโดย userspace เพื่อให้ใช้เคอร์เนล Linux ได้ดียิ่งขึ้น จึงตัดสินใจที่จะปฏิบัติต่อคำสั่งเป็นรายการงานและเรียกใช้งานคำสั่งเหล่านี้ในตัวจัดการเธรด ksmbd -io kworker
สิ่งนี้ทำให้ผู้จัดการสามารถมัลติเพล็กซ์ได้เนื่องจากเคอร์เนลจะดูแลการเริ่มต้นเธรดผู้ปฏิบัติงานเพิ่มเติมหากโหลดเพิ่มขึ้น และในทางกลับกัน หากโหลดลดลง มันจะฆ่าเธรดผู้ปฏิบัติงานเพิ่มเติม
เมื่อ daemon ของเซิร์ฟเวอร์เริ่มทำงาน เซิร์ฟเวอร์จะเริ่มแยกเธรด (ksmbd/ชื่ออินเตอร์เฟส) ในเวลาบูต และเปิดพอร์ตเฉพาะ 445 เพื่อรับฟังคำขอ SMB ทุกครั้งที่ไคลเอ็นต์ใหม่ทำการร้องขอ เธรดตัวแยกจะยอมรับการเชื่อมต่อของไคลเอ็นต์ และสร้างเธรดใหม่สำหรับช่องทางการสื่อสารเฉพาะระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ สิ่งนี้ทำให้คำขอ SMB (คำสั่ง) จากไคลเอนต์สามารถประมวลผลแบบขนานได้ และอนุญาตให้ไคลเอนต์ใหม่สร้างการเชื่อมต่อใหม่
ksmbd ยกธงแดงในหมู่ผู้ใช้บางคน ที่กล่าวถึงการควบรวมกิจการเมื่อปีที่แล้ว SerNet บริษัทคอมพิวเตอร์สัญชาติเยอรมันที่นำเสนอ Samba เวอร์ชันของตัวเอง กล่าวในบล็อกโพสต์ว่า ksmbd นั้นยอดเยี่ยม แต่ดูเหมือนยังไม่บรรลุนิติภาวะ นอกจากนี้ ทีม Samba+ ของ SerNet ระบุในบล็อกโพสต์ว่ามูลค่าของการเพิ่มเซิร์ฟเวอร์ SMB ในพื้นที่เคอร์เนลอาจไม่คุ้มกับความเสี่ยงของการ "บีบประสิทธิภาพส่วนสุดท้ายออกจากสิ่งที่มีอยู่"
โชคดีที่ถ้าคุณไม่ได้ใช้โมดูล ksmbd "รุ่นทดลอง" ของ Samsung ตามที่ Shir Tamari นักวิจัยด้านความปลอดภัยอธิบายไว้บน Twitter และได้เก็บ Samba ไว้ คุณจะปลอดภัยอย่างสมบูรณ์ “ksmbd ใหม่; ผู้ใช้ส่วนใหญ่ยังคงใช้ Samba และไม่ได้รับผลกระทบใดๆ โดยทั่วไป หากคุณไม่ได้ใช้งานเซิร์ฟเวอร์ SMB ด้วย ksmbd ขอให้สนุกกับวันหยุดสุดสัปดาห์ของคุณ” Tamari ทวีต
ตามโครงการ Zero-Day Initiative ซึ่งเปิดเผยช่องโหว่ ksmbd ช่องโหว่ use-after-free อยู่ในการประมวลผลคำสั่ง SMB2_TREE_DISCONNECT จากข้อมูลของ ZDI ปัญหาเกิดจาก ksmbd ไม่ตรวจสอบการมีอยู่ของวัตถุก่อนที่จะดำเนินการกับวัตถุเหล่านั้น
สำหรับผู้ที่ใช้ ksmbd มีวิธีแก้ไขนอกเหนือจากการเปลี่ยนไปใช้ Samba: อัปเกรดเป็น Linux kernel เวอร์ชัน 5.15.61 ซึ่งเปิดตัวในเดือนสิงหาคมหรือใหม่กว่า การอัปเดตเคอร์เนลนี้ยังแก้ไขปัญหาอื่นๆ อีกเล็กน้อยใน ksmbd: การอ่านนอกขอบเขตสำหรับ SMB2_TREE_CONNECT ซึ่งตามบันทึกย่อของแพตช์อาจทำให้คำขอที่ไม่ถูกต้องไม่สามารถส่งข้อความได้ และการรั่วไหลของหน่วยความจำใน smb2_handle_negotiate ทำให้เกิดการว่างที่ไม่ถูกต้องของ หน่วยความจำ.
ในที่สุดถ้าคุณเป็น สนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้คุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.