มีการระบุช่องโหว่ใน GDM

นักวิจัยด้านความปลอดภัย โดย GitHub ทำให้เป็นที่รู้จัก เมื่อเร็ว ๆ นี้ คุณได้ระบุช่องโหว่ (CVE-2020-16125) ใน GNOME Display Manager (GDM) ซึ่งมีหน้าที่แสดงหน้าจอล็อกอิน

รวมกับช่องโหว่อื่น ในบริการติดตามบัญชี (accounts-daemon) ปัญหาอนุญาตให้โค้ดทำงานในฐานะรูท  ช่องโหว่นี้เชื่อมโยงกับการเรียกใช้ยูทิลิตี้คอนฟิกูเรชันเริ่มต้นที่ไม่ถูกต้องหากไม่สามารถเข้าถึงเซอร์วิสแอคเคาต์ดีมอนผ่าน DBus

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

ผู้ใช้ที่ไม่มีสิทธิพิเศษสามารถขัดข้องในกระบวนการ accounts-daemon หรือวางสาย สิ่งที่จะสร้างเงื่อนไข สำหรับยูทิลิตี้ gnome-initial-setup ที่จะเรียกใช้จาก GDM ซึ่งผู้ใช้ใหม่สามารถลงทะเบียนเป็นสมาชิกของกลุ่ม sudo นั่นคือมีความสามารถในการรันโปรแกรมในฐานะรูท

ตามปกติ GDM เรียก gnome-initial-setup เพื่อตั้งค่าผู้ใช้รายแรก หากไม่มีบัญชีในระบบ การตรวจสอบการมีอยู่ของบัญชีทำได้โดยการติดต่อ accounts-daemon หากกระบวนการที่ระบุล้มเหลว GDM จะถือว่าบัญชีหายไปและเริ่มกระบวนการตั้งค่าเริ่มต้น

ผู้วิจัยระบุสองวิธีในการขัดขวางกระบวนการ daemon-accounts- ครั้งแรก (CVE-2020-16126) เกิดจากการรีเซ็ตสิทธิ์ไม่ถูกต้องและข้อผิดพลาดที่สอง (CVE-2020-16127) ขณะประมวลผลไฟล์ ".pam_environment"

นอกจากนี้ พบช่องโหว่อื่นในบัญชี daemon (CVE-2018-14036) เกิดจากการตรวจสอบเส้นทางไฟล์ที่ไม่ถูกต้องและอนุญาตให้อ่านเนื้อหาไฟล์บนระบบโดยพลการ.

ช่องโหว่ใน accounts-daemon เกิดจากการเปลี่ยนแปลงที่ทำโดยนักพัฒนา Ubuntu และไม่ปรากฏในรหัสบัญชี - daemon หลักของโปรเจ็กต์ FreeDesktop และแพ็คเกจ Debian

ปัญหา CVE-2020-16127 มีอยู่ในโปรแกรมแก้ไขที่เพิ่มใน Ubuntu ซึ่งใช้ฟังก์ชัน is_in_pam_environment ซึ่งอ่านเนื้อหาของไฟล์. pam_environment จากโฮมไดเร็กทอรีของผู้ใช้ หากคุณใส่ลิงก์สัญลักษณ์ไปที่ / dev / zero แทนไฟล์นี้กระบวนการแอคเคาต์ดีมอนจะหยุดการดำเนินการอ่านแบบไม่สิ้นสุดและหยุดตอบสนองต่อคำร้องขอผ่าน DBus

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

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

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

ช่องโหว่ CVE-2020-16126 เกิดจากแพตช์อื่น ซึ่งจะรีเซ็ตสิทธิ์ของผู้ใช้ปัจจุบันขณะประมวลผลการเรียก DBus บางอย่าง (ตัวอย่างเช่น org.freedesktop.Accounts.User.SetLanguage)

กระบวนการแอคเคาต์ดีมอนรันตามปกติในฐานะรูทซึ่งป้องกันไม่ให้ผู้ใช้ปกติส่งสัญญาณ

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

ผู้ใช้สิ้นสุดเซสชันแบบกราฟิกและไปที่คอนโซลข้อความ (Ctrl-Alt-F1)
หลังจากเซสชันกราฟิกสิ้นสุดลง GDM จะพยายามแสดงหน้าจอล็อกอิน แต่แฮงค์เมื่อพยายามรับการตอบกลับจากแอคเคาต์ - ดีมอน

สัญญาณ SIGSEGV และ SIGCONT ถูกส่งจากคอนโซลไปยังกระบวนการแอคเคาต์ดีมอนทำให้แฮงค์

นอกจากนี้คุณยังสามารถส่งสัญญาณก่อนออกจากเซสชันกราฟิกได้ แต่คุณต้องดำเนินการด้วยความล่าช้าเพื่อให้มีเวลาสิ้นสุดเซสชันและก่อนที่สัญญาณจะถูกส่ง GDM มีเวลาเริ่มต้น

การร้องขอไปยัง daemon บัญชีใน GDM ล้มเหลวและ GDM เรียกยูทิลิตี้ gnome-initial-setup ซึ่งอินเทอร์เฟซเพียงพอที่จะสร้างบัญชีใหม่

ช่องโหว่ได้รับการแก้ไขใน GNOME 3.36.2 และ 3.38.2 การใช้ประโยชน์จากช่องโหว่ได้รับการยืนยันใน Ubuntu และอนุพันธ์

Fuente: https://securitylab.github.com


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

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

*

*

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