เมื่อเร็ว ๆ นี้ ข้อมูลสำคัญเกี่ยวกับ บัตรประจำตัวของ ช่องโหว่ (ระบุเป็น CVE-2021-27365) ในรหัสระบบย่อย iSCSI เคอร์เนลลินุกซ์ที่ อนุญาตให้ผู้ใช้โลคัลที่ไม่มีสิทธิพิเศษสามารถรันโค้ดที่ระดับเคอร์เนลและรับสิทธิ์รูทบนระบบ
ปัญหาเกิดจากจุดบกพร่องในโมดูล iscsi_host_get_param () ของ libiscsi ซึ่งเปิดตัวในปี 2006 ระหว่างการพัฒนาระบบย่อย iSCSI เนื่องจากไม่มีการควบคุมขนาดที่เหมาะสมแอตทริบิวต์สตริง iSCSI บางอย่างเช่นชื่อโฮสต์หรือชื่อผู้ใช้อาจเกินค่า PAGE_SIZE (4KB)
ช่องโหว่นี้อาจถูกใช้โดยการส่งข้อความ Netlink โดยผู้ใช้ที่ไม่มีสิทธิ์ซึ่งตั้งค่าแอตทริบิวต์ iSCSI เป็นค่าที่มากกว่า PAGE_SIZE เมื่ออ่านข้อมูลแอ็ตทริบิวต์ผ่าน sysfs หรือ seqfs โค้ดจะถูกเรียกให้ส่งต่อแอ็ตทริบิวต์ไปยัง sprintf เพื่อคัดลอกลงในบัฟเฟอร์ที่มีขนาด PAGE_SIZE
ระบบย่อยที่เป็นปัญหาคือการขนส่งข้อมูล SCSI (Small Computer System Interface) ซึ่งเป็นมาตรฐานสำหรับการถ่ายโอนข้อมูลที่สร้างขึ้นเพื่อเชื่อมต่อคอมพิวเตอร์กับอุปกรณ์ต่อพ่วงโดยเดิมผ่านสายเคเบิลทางกายภาพเช่นฮาร์ดไดรฟ์ SCSI เป็นมาตรฐานที่น่านับถือซึ่งตีพิมพ์ครั้งแรกในปี 1986 และเป็นมาตรฐานทองคำสำหรับการกำหนดค่าเซิร์ฟเวอร์และโดยทั่วไปแล้ว iSCSI นั้นเป็น SCSI ผ่าน TCP SCSI ยังคงใช้อยู่ในปัจจุบันโดยเฉพาะในสถานการณ์จัดเก็บข้อมูลบางอย่าง แต่สิ่งนี้จะกลายเป็นพื้นผิวการโจมตีบนระบบ Linux เริ่มต้นได้อย่างไร
ใช้ประโยชน์จากช่องโหว่ ในการแจกแจง ขึ้นอยู่กับการสนับสนุนสำหรับการโหลดอัตโนมัติของโมดูลเคอร์เนล scsi_transport_iscsi เมื่อพยายามสร้างซ็อกเก็ต NETLINK_ISCSI
ในการกระจายที่โมดูลนี้โหลดโดยอัตโนมัติการโจมตีสามารถทำได้ โดยไม่คำนึงถึงการใช้ฟังก์ชัน iSCSI ในขณะเดียวกันเพื่อให้การใช้ประโยชน์ประสบความสำเร็จจำเป็นต้องมีการลงทะเบียนการขนส่ง iSCSI อย่างน้อยหนึ่งรายการเพิ่มเติม ในทางกลับกันในการลงทะเบียนการขนส่งคุณสามารถใช้โมดูลเคอร์เนล ib_iser ซึ่งจะโหลดโดยอัตโนมัติเมื่อผู้ใช้ที่ไม่มีสิทธิ์พยายามสร้างซ็อกเก็ต NETLINK_RDMA
การโหลดโมดูลโดยอัตโนมัติที่จำเป็นในการใช้ประโยชน์ รองรับ CentOS 8, RHEL 8 และ Fedora โดยการติดตั้งแพ็คเกจ rdma-core บนระบบซึ่งเป็นการพึ่งพาสำหรับแพ็กเกจยอดนิยมบางแพ็กเกจและได้รับการติดตั้งโดยค่าเริ่มต้นในการกำหนดค่าสำหรับเวิร์กสเตชันระบบเซิร์ฟเวอร์ที่มี GUI และการจำลองเสมือนของสภาพแวดล้อมโฮสต์
ในขณะเดียวกันก็ไม่ได้ติดตั้ง rdma-core เมื่อใช้เซิร์ฟเวอร์บิลด์ที่ใช้งานได้ในโหมดคอนโซลเท่านั้นและเมื่อติดตั้งอิมเมจการติดตั้งขั้นต่ำ ตัวอย่างเช่นแพคเกจรวมอยู่ในการแจกจ่ายเวิร์กสเตชันพื้นฐานของ Fedora 31 แต่ไม่รวมอยู่ในเซิร์ฟเวอร์ Fedora 31
Debian และ Ubuntu มีปัญหาน้อยกว่าเนื่องจากแพ็กเกจ rdma-core จะโหลดเฉพาะโมดูลเคอร์เนลที่จำเป็นสำหรับการโจมตีหากฮาร์ดแวร์ RDMA พร้อมใช้งาน อย่างไรก็ตามแพ็คเกจ Ubuntu ฝั่งเซิร์ฟเวอร์มีแพ็คเกจ open-iscsi ซึ่งรวมถึงไฟล์ /lib/modules-load.d/open-iscsi.conf เพื่อให้แน่ใจว่าโมดูล iSCSI จะโหลดโดยอัตโนมัติทุกครั้งที่บูต
มีต้นแบบการทำงานของการใช้ประโยชน์สำหรับ ลองดูที่ลิงค์ด้านล่าง
ช่องโหว่ได้รับการแก้ไขในการอัปเดตเคอร์เนล Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 และ 4.4.260 การอัปเดตแพ็คเกจเคอร์เนลมีให้ใช้งานบน Debian (oldstable), Ubuntu, SUSE / openSUSE, Arch Linux และ Fedora ในขณะที่ RHEL ยังไม่มีการเผยแพร่การแก้ไข
นอกจากนี้ในระบบย่อย iSCSI ช่องโหว่ที่อันตรายน้อยกว่าสองรายการได้รับการแก้ไขแล้ว ที่อาจนำไปสู่การรั่วไหลของข้อมูลเคอร์เนล: CVE-2021-27363 (ข้อมูลรั่วไหลเกี่ยวกับตัวบอกการขนส่ง iSCSI ผ่าน sysfs) และ CVE-2021-27364 (การอ่านจากพื้นที่นอกขอบเขตบัฟเฟอร์)
ช่องโหว่เหล่านี้สามารถใช้เพื่อสื่อสารผ่านซ็อกเก็ตลิงก์เครือข่ายกับระบบย่อย iSCSI โดยไม่มีสิทธิ์ที่จำเป็น ตัวอย่างเช่นผู้ใช้ที่ไม่มีสิทธิ์สามารถเชื่อมต่อกับ iSCSI และส่งคำสั่งล็อกเอาต์
Fuente: https://blog.grimm-co.com