Dirty Pipe หนึ่งในช่องโหว่ที่ร้ายแรงที่สุดในรอบหลายปีใน Linux

ล่าสุดมีข่าวออกในเน็ตว่าการค้นพบของ ช่องโหว่ใหม่ใน Linux ซึ่งมีรายชื่อเป็น "ความรุนแรงสูง" ซึ่งมีผลกับเมล็ดทั้งหมดตั้งแต่เวอร์ชัน 5.8, เช่นเดียวกับอนุพันธ์รวมถึง Android

รู้จักกันในนาม Dirty Pipe อนุญาตให้เขียนทับข้อมูลในไฟล์แบบอ่านอย่างเดียวและอาจนำไปสู่การยกระดับสิทธิ์ โดยการฉีดรหัสลงในกระบวนการ "รูท"

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

นอกจากนี้ยังหมายความว่าสมาร์ทโฟน Android ที่เพิ่งออกใหม่จำนวนมาก เช่น Samsung Galaxy S22 และ Google Pixel 6 ก็มีความเสี่ยงเช่นกัน จนกว่าอุปกรณ์แต่ละเครื่องจะได้รับเคอร์เนลแพตช์ที่เหมาะสมจาก OEM ที่เกี่ยวข้อง

เกี่ยวกับ Dirty Pipe

จุดอ่อนคือ เปิดเผยโดย Max Kellerman นักวิจัยด้านความปลอดภัย และจัดหมวดหมู่เป็น (CVE-2022-0847) ต้องใช้เวลาสองสามเดือนในการหาช่องโหว่ที่พิสูจน์แนวคิด

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

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

หลังจากวิเคราะห์มาหลายเดือน นักวิจัยค้นพบในที่สุดว่าไฟล์ไคลเอนต์ที่เสียหายเป็นผลมาจากจุดบกพร่องในเคอร์เนลของลินุกซ์ เขาพบวิธีใช้ประโยชน์จาก Dirty Pipe เพื่อให้ทุกคนที่มีบัญชี รวมทั้งบัญชี "ไม่มีใคร" ที่มีสิทธิ์น้อยกว่า เพิ่มคีย์ SSH ลงในบัญชีผู้ใช้รูท

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

ในการใช้ประโยชน์จากช่องโหว่นี้ คุณต้อง: สร้างไพพ์ เติมข้อมูลไพพ์ลงในไพพ์ (โดยการตั้งค่าแฟล็ก PIPE_BUF_FLAG_CAN_MERGE บนรายการทั้งหมดในริง) ล้างไพพ์ (ปล่อยให้แฟล็กตั้งค่าไว้บนอินสแตนซ์ทั้งหมดของโครงสร้าง pipe_buffer ในโครงสร้าง ของวงแหวน pipe_inode_info) รวมข้อมูลจากไฟล์เป้าหมาย (เปิดด้วย O_RDONLY) ลงในไพพ์ก่อนออฟเซ็ตเป้าหมาย และเขียนข้อมูลตามอำเภอใจไปยังไพพ์

Dirty Pipe ยังส่งผลกระทบต่อ Android ทุกรุ่นโดยอิงจากเคอร์เนล Linux รุ่นใดรุ่นหนึ่งที่มีช่องโหว่ เนื่องจาก Android มีการแยกส่วน ดังนั้นรุ่นอุปกรณ์ที่ได้รับผลกระทบจึงไม่สามารถติดตามได้เหมือนกัน

ตามที่เคลเลอร์แมน, Google ได้รวมการแก้ไขข้อผิดพลาดเข้ากับเคอร์เนล Android เมื่อเดือนที่แล้ว ทันทีที่ได้รับการแก้ไขด้วยการเปิดตัวเคอร์เนล Linux เวอร์ชัน 5.16.11, 5.15.25 และ 5.10.102

ที่กล่าวว่าเราอาจต้องรอสักครู่ก่อนที่ OEM จะเริ่มเปิดตัวอัปเดต Android ที่มีการแก้ไข ตัวอย่างเช่น Pixel 6 ของ Google ยังคงมีช่องโหว่ แต่ผู้ใช้ขั้นสูงสามารถบรรเทาข้อบกพร่องได้โดยการติดตั้งเคอร์เนลหลังการขายที่ได้รับการแพตช์แบบกำหนดเองเป็นทางเลือกอื่น

นักพัฒนาเคอร์เนล Linux ได้เผยแพร่โปรแกรมแก้ไข (5.16.11, 5.15.25, 5.10.102) เมื่อวันที่ 23 กุมภาพันธ์ ในขณะที่ Google ได้แก้ไขเคอร์เนล Android ในวันที่ 24 กุมภาพันธ์ Kellermann และผู้เชี่ยวชาญคนอื่นๆ เปรียบเทียบช่องโหว่กับ CVE-2016-5195 “วัวสกปรก” และพวกเขาบอกว่ามันง่ายกว่าที่จะเอาเปรียบ

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


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

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

*

*

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