พบข้อบกพร่องในเคอร์เนล AF_PACKET และลบข้อความการเลื่อนในคอนโซล

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

ข้อมูลที่เผยแพร่ระบุว่าสิทธิ์ CAP_NET_RAW จำเป็นในการสร้างซ็อกเก็ต AF_PACKET และใช้ประโยชน์จากช่องโหว่

อย่างไรก็ตามมีข้อสังเกตว่า ผู้ใช้ที่ไม่มีสิทธิ์สามารถรับสิทธิ์ได้ ระบุ ในคอนเทนเนอร์ที่สร้างบนระบบที่เปิดใช้งานเนมสเปซผู้ใช้

ตัวอย่างเช่นเนมสเปซของผู้ใช้จะรวมไว้โดยค่าเริ่มต้นใน Ubuntu และ Fedora แต่ไม่ได้เปิดใช้งานใน Debian และ RHEL ในขณะที่ใน Android กระบวนการ mediaerver มีสิทธิ์ในการสร้างซ็อกเก็ต AF_PACKET ซึ่งช่องโหว่นี้สามารถใช้ประโยชน์ได้

เกี่ยวกับช่องโหว่ใน AF_PACKET

ช่องโหว่มีอยู่ในฟังก์ชัน tpacket_rcv และเกิดจากข้อผิดพลาดในการคำนวณตัวแปร netoff

ผู้โจมตีสามารถสร้างเงื่อนไข ตามที่ จะเขียนค่าน้อยกว่า maclen ในตัวแปร netoff ซึ่ง จะทำให้ล้น ด้วยการคำนวณ "macoff = netoff-maclen" จากนั้นการทำเช่นนั้นอาจตั้งค่าตัวชี้ไปที่บัฟเฟอร์สำหรับข้อมูลขาเข้าไม่ถูกต้อง

เป็นผลให้ ผู้โจมตีสามารถเริ่มการเขียนตั้งแต่ 1 ถึง 10 ไบต์ไปยังพื้นที่นอกบัฟเฟอร์ที่จัดสรร 

การคำนวณผิดถูกนำเสนอในเคอร์เนลตั้งแต่เดือนกรกฎาคม 2008 นั่นคือในเมล็ดปัจจุบันทั้งหมดอย่างไรก็ตามความสามารถที่ทราบกันดีในตอนนี้ในการใช้เพื่อเขียนไปยังพื้นที่นอกบัฟเฟอร์ที่จัดสรร (ช่องโหว่) น่าจะนำมาใช้ในเดือนกุมภาพันธ์จาก 2016 (จากเคอร์เนล เวอร์ชัน 4.6-rc1 และใหม่กว่า) พร้อมการพัฒนาสนับสนุน Virtio_net

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

สำหรับผู้ที่สนใจที่จะทราบว่าการแก้ไขนั้นพร้อมใช้งานสำหรับการแจกจ่ายหรือไม่พวกเขาสามารถติดตามลักษณะที่ปรากฏของการอัปเดตแพ็กเกจในการกระจายต่างๆในหน้าต่อไปนี้: อูบุนตู Fedora, SUSE, debian, RHEL, โค้ง.

การรองรับการเลื่อนข้อความสำหรับคอนโซลข้อความถูกลบออก

ในทางกลับกันเมื่อพูดถึงเคอร์เนลลินุกซ์มีการประกาศด้วยว่าโค้ดการเลื่อนข้อความถูกลบออกจากการใช้งานคอนโซลข้อความในเคอร์เนลลินุกซ์ (CONFIG_VGACON_SOFT_SCROLLBACK)

รหัส ถูกลบออกเนื่องจากมีข้อบกพร่องซึ่งไม่มีใครแก้ไขได้เนื่องจากไม่มีผู้จัดการที่ดูแลการพัฒนา vgacon

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

นอกเหนือจากนั้น การตรวจสอบเพิ่มเติมพบปัญหาอื่น ๆ อีกมากมาย คล้ายกับรหัส vgacon เช่นเดียวกับปัญหาการใช้งานซอฟต์แวร์ displacement ในตัวควบคุม fbcon

แต่น่าเสียดายที่ รหัสปัญหาถูกปล่อยทิ้งไว้โดยไม่มีใครดูแลเป็นเวลานาน น่าจะเกิดจากการที่นักพัฒนาเปลี่ยนไปใช้คอนโซลกราฟิกและคอนโซลข้อความหยุดใช้งาน (ผู้คนยังคงใช้คอนโซล vgacon และ fbcon แต่พวกเขาไม่ได้เป็นอินเทอร์เฟซหลักของเคอร์เนลมานานหลายทศวรรษและได้แพร่กระจายทั้ง ฟังก์ชันเช่นการเลื่อนในตัวของคอนโทรลเลอร์ (Shift + PgUp / PgUp) อาจมีความต้องการน้อย)

ในเรื่องนี้ Linus Torvalds ตัดสินใจที่จะไม่พยายามเก็บรหัสไว้ ไม่มีผู้อ้างสิทธิ์แต่เพียงแค่ลบมัน.

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา