พวกเขาค้นพบช่องโหว่ในระบบย่อย Linux eBPF

ล่าสุดมีข่าวดังกล่าว มีการระบุช่องโหว่ (CVE-2021-29154) ในระบบย่อย eBPF ซึ่งนอนุญาตให้รันการติดตามการวิเคราะห์ระบบย่อยและตัวควบคุมการรับส่งข้อมูล ทำงานภายในเคอร์เนล Linux ในเครื่องเสมือน JIT พิเศษที่ อนุญาตให้ผู้ใช้ภายในรันโค้ดของคุณที่ระดับเคอร์เนล

ตามที่นักวิจัยระบุช่องโหว่ดังกล่าวพวกเขาสามารถพัฒนาต้นแบบที่ใช้งานได้ของช่องโหว่สำหรับระบบ x86 32 บิตและ 64 บิตซึ่งผู้ใช้ที่ไม่มีสิทธิ์ใช้งานได้

ในเวลาเดียวกัน Red Hat ตั้งข้อสังเกตว่าความรุนแรงของปัญหาขึ้นอยู่กับความพร้อมของการเรียกระบบ eBPF สำหรับผู้ใช้ ตัวอย่างเช่นบน RHEL และ Linux ดิสทริบิวชันอื่น ๆ โดยค่าเริ่มต้นช่องโหว่นี้สามารถใช้ประโยชน์ได้เมื่อเปิดใช้งาน BPF JIT และผู้ใช้มีสิทธิ์ CAP_SYS_ADMIN

พบปัญหาในเคอร์เนล Linux ที่สามารถใช้ในทางที่ผิดได้
ผู้ใช้ในพื้นที่ที่ไม่ได้รับสิทธิพิเศษเพื่อเพิ่มสิทธิ์

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

และเป็นที่ที่พวกเขาให้รายละเอียดว่า ปัญหาเกิดจากข้อผิดพลาดที่สร้างขึ้นเมื่อคำนวณออฟเซ็ตของคำสั่งการแตกแขนง ระหว่างคอมไพเลอร์ JIT ที่สร้างรหัสเครื่อง

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

ควรสังเกตว่า นี่ไม่ใช่ช่องโหว่เดียวในระบบย่อย eBPF ที่เป็นที่รู้จักในช่วงไม่กี่ปีที่ผ่านมา ตั้งแต่ปลายเดือนมีนาคมมีการระบุช่องโหว่อีกสองช่องในเคอร์เนล (CVE-2020-27170, CVE-2020-27171)ซึ่งให้ความสามารถในการใช้ eBPF เพื่อหลีกเลี่ยงการป้องกันช่องโหว่ระดับ Spectre ซึ่งอนุญาตให้กำหนดเนื้อหาของหน่วยความจำเคอร์เนลและส่งผลให้มีการสร้างเงื่อนไขสำหรับการดำเนินการเชิงคาดเดาของการดำเนินการบางอย่าง

การโจมตี Spectre จำเป็นต้องมีลำดับของคำสั่งที่เฉพาะเจาะจงในรหัสที่มีสิทธิพิเศษซึ่งนำไปสู่การดำเนินการคำสั่งเชิงคาดเดา ใน eBPF พบหลายวิธี เพื่อสร้างคำสั่งดังกล่าวโดยการจัดการกับโปรแกรม BPF ที่ส่งไปเพื่อดำเนินการ

  • ช่องโหว่ CVE-2020-27170 เกิดจากการปรับแต่งตัวชี้ในตัวตรวจสอบ BPF ซึ่งทำให้การดำเนินการเก็งกำไรเข้าถึงพื้นที่นอกบัฟเฟอร์
  • ช่องโหว่ CVE-2020-27171 เกี่ยวข้องกับจุดบกพร่องจำนวนเต็มเมื่อทำงานกับพอยน์เตอร์ซึ่งนำไปสู่การเก็งกำไรในการเข้าถึงข้อมูลที่ไม่อยู่ในบัฟเฟอร์

ปัญหาเหล่านี้ได้รับการแก้ไขแล้วในเคอร์เนลเวอร์ชัน 5.11.8, 5.10.25, 5.4.107, 4.19.182 และ 4.14.227 และรวมอยู่ในการอัปเดตเคอร์เนลสำหรับการกระจาย Linux ส่วนใหญ่ นักวิจัยได้เตรียมต้นแบบการใช้ประโยชน์ที่ช่วยให้ผู้ใช้ที่ไม่มีสิทธิ์สามารถดึงข้อมูลจากหน่วยความจำเคอร์เนลได้

สำหรับหนึ่งในวิธีแก้ปัญหานั้น เสนอภายใน Red Hat คือ:

การบรรเทา:

ปัญหานี้ไม่ส่งผลกระทบต่อระบบส่วนใหญ่ตามค่าเริ่มต้น ผู้ดูแลระบบจะต้องเปิดใช้งาน BPF JIT จึงจะได้รับผลกระทบ

สามารถปิดใช้งานได้ทันทีด้วยคำสั่ง:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

หรือสามารถปิดใช้งานสำหรับการบู๊ตระบบที่ตามมาทั้งหมดโดยตั้งค่าใน /etc/sysctl.d/44-bpf -jit-disabled

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับช่องโหว่นี้คุณสามารถตรวจสอบรายละเอียดได้ใน ลิงค์ต่อไปนี้

เป็นที่น่าสังเกตว่าปัญหายังคงมีอยู่จนถึงเวอร์ชัน 5.11.12 (รวม) และยังไม่ได้รับการแก้ไขในการแจกแจงส่วนใหญ่แม้ว่าจะมีการแก้ไขแล้วก็ตาม พร้อมใช้งานเป็นแพทช์


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

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

*

*

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