ช่องโหว่ที่สามารถหาประโยชน์ได้จากระยะไกลใน FreeBSD

บน FreeBSD ตกรอบแล้ว ช่องโหว่ห้าจุด รวมถึงปัญหาที่อาจนำไปสู่การเขียนทับข้อมูลระดับเคอร์เนลเมื่อส่งแพ็คเก็ตเครือข่ายบางอย่างหรืออนุญาตให้ผู้ใช้ภายในเพิ่มระดับสิทธิ์ของตน ช่องโหว่ได้รับการแก้ไขแล้วในการอัปเดต 12.1-RELEASE-p5 และ 11.3-RELEASE-p9

ช่องโหว่ที่อันตรายที่สุด (CVE-2020-7454) เกิดจากการขาดการตรวจสอบขนาดแพ็กเก็ตที่เหมาะสมในไลบรารี libalias เมื่อแยกวิเคราะห์ส่วนหัวเฉพาะโปรโตคอล ไลบรารี libalias ใช้ในตัวกรองแพ็กเก็ต ipfw สำหรับการแปลที่อยู่ และมีฟังก์ชันมาตรฐานสำหรับการแทนที่ที่อยู่ในแพ็กเก็ต IP และโปรโตคอลการแยกวิเคราะห์ ช่องโหว่นี้ทำให้สามารถอ่านหรือเขียนข้อมูลในพื้นที่หน่วยความจำเคอร์เนล (เมื่อใช้ NAT ในเคอร์เนล) หรือประมวลผลโดยการส่งแพ็กเก็ตเครือข่ายที่ออกแบบมาเป็นพิเศษ
natd (หากใช้พื้นที่ผู้ใช้การนำ NAT ไปใช้) ปัญหานี้ไม่ส่งผลต่อการกำหนดค่า NAT ที่สร้างโดยใช้ตัวกรองแพ็กเก็ต pf และ ipf หรือการกำหนดค่า ipfw ที่ไม่ได้ใช้ NAT

ช่องโหว่อื่นๆ:

  • CVE-2020-7455 - ช่องโหว่ที่สามารถหาประโยชน์ได้จากระยะไกลใน libalias ที่เกี่ยวข้องกับการคำนวณความยาวแพ็กเก็ตในตัวจัดการ FTP ที่ไม่ถูกต้อง ปัญหาจำกัดอยู่ที่การรั่วไหลของเนื้อหาข้อมูลจำนวนไม่กี่ไบต์จากพื้นที่หน่วยความจำเคอร์เนลหรือกระบวนการ natd
  • CVE-2019-15879 — ช่องโหว่ในโมดูล cryptodev ที่เกิดจากการเข้าถึงพื้นที่หน่วยความจำที่ว่างอยู่แล้ว (ใช้งานฟรี) และอนุญาตให้กระบวนการที่ไม่มีสิทธิ์เขียนทับพื้นที่หน่วยความจำเคอร์เนลโดยพลการ เพื่อเป็นวิธีแก้ปัญหาในการบล็อกช่องโหว่ ขอแนะนำให้ยกเลิกการโหลดโมดูล cryptodev ด้วยคำสั่ง “kldunload cryptodev” หากมีการโหลดไว้ (cryptdev ไม่ได้โหลดตามค่าเริ่มต้น) โมดูล cryptodev ช่วยให้แอปพลิเคชันพื้นที่ผู้ใช้สามารถเข้าถึงอินเทอร์เฟซ /dev/crypto เพื่อเข้าถึงการดำเนินการเข้ารหัสลับที่เร่งด้วยฮาร์ดแวร์ (/dev/crypto ไม่ได้ใช้ใน AES-NI และ OpenSSL)
  • CVE-2019-15880 - ช่องโหว่ที่สองใน cryptodev ซึ่งช่วยให้ผู้ใช้ที่ไม่มีสิทธิ์สามารถเริ่มต้นเคอร์เนลขัดข้องโดยการส่งคำขอเพื่อดำเนินการเข้ารหัสด้วย MAC ที่ไม่ถูกต้อง ปัญหาเกิดจากการขาดการตรวจสอบขนาดของคีย์ MAC เมื่อจัดสรรบัฟเฟอร์เพื่อจัดเก็บ (บัฟเฟอร์ถูกสร้างขึ้นตามข้อมูลขนาดที่ผู้ใช้ระบุ โดยไม่ตรวจสอบขนาดจริง)
  • CVE-2019-15878 - ช่องโหว่ในการใช้งานโปรโตคอล SCTP (Stream Control Transmission Protocol) ที่เกิดจากการตรวจสอบคีย์ที่ใช้ร่วมกันที่ไม่ถูกต้องซึ่งใช้โดยส่วนขยาย SCTP-AUTH เพื่อตรวจสอบความถูกต้องของลำดับ SCTP แอปพลิเคชันในเครื่องสามารถอัปเดตคีย์ผ่าน Socket API ในขณะเดียวกันก็ยกเลิกการเชื่อมต่อ SCTP พร้อมกัน ซึ่งจะนำไปสู่การเข้าถึงพื้นที่หน่วยความจำที่ว่างอยู่แล้ว (ใช้งานหลังเลิกใช้งาน)

ที่มา: opennet.ru

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