ช่องโหว่ที่มีอยู่เป็นเวลา 12 ปีใน polkit อนุญาตให้ได้รับสิทธิ์รูท 

เมื่อไม่กี่วันก่อนมีข่าวออกมาว่า ทีมวิจัย Qualys ค้นพบช่องโหว่หน่วยความจำเสียหายใน polkit pkexecซึ่งเป็นโปรแกรมรูท SUID ที่ติดตั้งโดยค่าเริ่มต้นบนลีนุกซ์รุ่นหลักๆ ทั้งหมด

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

พลกิจ (เดิมชื่อ PolicyKit) เป็นส่วนประกอบสำหรับการควบคุมสิทธิ์ทั่วทั้งระบบ บนระบบปฏิบัติการแบบยูนิกซ์ มันจัดเตรียมวิธีการที่เป็นระเบียบสำหรับกระบวนการที่ไม่มีสิทธิพิเศษในการสื่อสารกับกระบวนการที่มีสิทธิพิเศษ และยังสามารถใช้ polkit เพื่อรันคำสั่งที่มีสิทธิ์ระดับสูงโดยใช้คำสั่ง pkexec ตามด้วยคำสั่งที่ตั้งใจให้รัน (โดยได้รับอนุญาตจากรูท)

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

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

จำแนกเป็น CVE-2021-4034 ช่องโหว่ดังกล่าวได้รับคะแนน CVSS 7,8 และทีม Qualys อธิบายไว้ในบล็อกโพสต์ว่า:

ข้อบกพร่อง pkexec เปิดประตูสู่การรูทสิทธิ์สำหรับผู้โจมตี เขากล่าวว่านักวิจัยของ Qualys ได้แสดงให้เห็นถึงการใช้ประโยชน์จากการติดตั้งเริ่มต้นของ Ubuntu, Debian, Fedora และ CentOS และลีนุกซ์รุ่นอื่นๆ ก็เชื่อว่ามีช่องโหว่เช่นกัน

“การแสวงประโยชน์จากช่องโหว่นี้อย่างประสบความสำเร็จทำให้ผู้ใช้ที่ไม่มีสิทธิ์ได้รับสิทธิ์รูทบนโฮสต์ที่มีช่องโหว่ นักวิจัยด้านความปลอดภัยของ Qualys สามารถตรวจสอบช่องโหว่ พัฒนาช่องโหว่ และรับสิทธิ์รูทเต็มรูปแบบจากการติดตั้งเริ่มต้นของ Ubuntu, Debian, Fedora และ CentOS ได้อย่างอิสระ ลีนุกซ์รุ่นอื่นๆ อาจมีช่องโหว่และใช้ประโยชน์ได้ ช่องโหว่นี้ถูกซ่อนไว้มานานกว่า 12 ปีและส่งผลกระทบต่อทุกเวอร์ชันของ pkexec นับตั้งแต่เปิดตัวครั้งแรกในเดือนพฤษภาคม 2009 (ยืนยัน c8c3d83 "เพิ่มคำสั่ง pkexec (1)")

"ทันทีที่ทีมวิจัยของเรายืนยันช่องโหว่ Qualys มุ่งมั่นที่จะเปิดเผยช่องโหว่อย่างรับผิดชอบ และประสานงานกับผู้ขายและการกระจายโอเพ่นซอร์สเพื่อประกาศช่องโหว่"

ปัญหาเกิดขึ้นเมื่อฟังก์ชั่น main() โดย pkexec ประมวลผลอาร์กิวเมนต์บรรทัดคำสั่ง และที่ argc เป็นศูนย์ ฟังก์ชันยังคงพยายามเข้าถึงรายการอาร์กิวเมนต์และจบลงด้วยการพยายามใช้ rgvvoid (ARGument Vector ของสตริงอาร์กิวเมนต์บรรทัดคำสั่ง) ด้วยเหตุนี้ หน่วยความจำจึงถูกอ่านและเขียนเกินขอบเขต ซึ่งผู้โจมตีสามารถใช้ประโยชน์จากการฉีดตัวแปรสภาพแวดล้อมที่อาจทำให้โหลดโค้ดตามอำเภอใจได้

ความจริงที่ว่าตัวแปรเหล่านี้สามารถนำกลับมาใช้ใหม่ได้ทำให้โค้ดมีช่องโหว่ อย่างน้อยเทคนิคการหาประโยชน์ที่ Qualys เสนอ (การฉีดตัวแปร GCONV_PATH ลงในสภาพแวดล้อม pkexec เพื่อเรียกใช้ไลบรารีที่แชร์เป็นรูท) จะทิ้งร่องรอยไว้ในไฟล์บันทึก

ในคำแนะนำด้านความปลอดภัย เร้ดแฮทได้ออกแถลงการณ์ดังต่อไปนี้:

"เร้ดแฮทตระหนักถึงช่องโหว่ที่พบใน pkexec ที่อนุญาตให้ผู้ใช้ที่ตรวจสอบสิทธิ์ทำการโจมตีเพื่อยกระดับสิทธิ์"

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

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

"ฮ่า ๆ ฉันเขียนเกี่ยวกับช่องโหว่ของ polkit นี้ในปี 2013 ฉันไม่พบเส้นทางการหาประโยชน์ที่แท้จริง แต่ฉันระบุสาเหตุที่แท้จริงแล้ว"

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


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

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

*

*

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