1 คะแนน โดย GN⁺ 2024-09-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • พบช่องโหว่แบบ zero-click ใน Calendar ของ macOS
  • ผู้โจมตีสามารถเพิ่มหรือลบไฟล์ใดก็ได้ภายในสภาพแวดล้อมแซนด์บ็อกซ์ของ Calendar
  • เมื่อใช้ร่วมกับการรันโค้ดอันตรายและการหลบเลี่ยงมาตรการป้องกันความปลอดภัย อาจทำให้ข้อมูล iCloud Photos ที่ละเอียดอ่อนของผู้ใช้เสียหายได้
  • Apple ได้แก้ไขช่องโหว่ทั้งหมดแล้วในช่วงระหว่างเดือนตุลาคม 2022 ถึงกันยายน 2023

รายละเอียดช่องโหว่

ขั้นที่ 1: ช่องโหว่การเขียนและลบไฟล์ตามอำเภอใจใน Calendar (CVE-2022-46723)

  • ผู้โจมตีสามารถแนบไฟล์มากับคำเชิญปฏิทินที่เป็นอันตรายได้
  • ชื่อไฟล์ของไฟล์แนบไม่ได้รับการตรวจสอบอย่างเหมาะสม
  • สามารถตั้งค่า path ตามอำเภอใจในส่วน ATTACH เพื่อทำการโจมตีแบบ directory traversal ได้
  • ตัวอย่าง: FILENAME=../../../PoC.txt
  • ไฟล์จะถูกเพิ่มไปที่ ~/Library/Calendar/PoC.txt
  • หากมีไฟล์อยู่แล้ว จะถูกบันทึกเป็น PoC.txt-2
  • เมื่อมีการลบอีเวนต์/ไฟล์แนบที่ผู้โจมตีส่งมา ไฟล์เดิม (PoC.txt) จะถูกลบออก
  • ช่องโหว่นี้สามารถใช้เพื่อลบไฟล์ที่มีอยู่เดิมภายในระบบไฟล์ได้
  • พบช่องโหว่ใน macOS Montrey 12.5 และไม่พบช่องโหว่ใน macOS 13.0 beta4

ขั้นที่ 2: ได้มาซึ่งการรันโค้ดจากระยะไกล (RCE) โดยอาศัยช่องโหว่การเขียนไฟล์ตามอำเภอใจ

  • ถูกค้นพบก่อนการเปิดตัว macOS Ventura ไม่นาน
  • สามารถอาศัยกระบวนการอัปเกรดเวอร์ชันของ macOS เพื่อให้ได้การรันโค้ดจากระยะไกลผ่านความสามารถ Open File ของ Calendar
  • ใช้การฝังไฟล์หลายไฟล์เพื่อกระตุ้นการทำงานของ RCE exploit
ไฟล์ที่ถูกฝัง #1: 000Hacked-$RANDOM.calendar
  • มีข้อมูลปฏิทินที่ดูเหมือนข้อมูลปฏิทินที่ Siri แนะนำ
  • มีฟังก์ชันอีเวนต์แบบทำซ้ำและการแจ้งเตือน
ไฟล์ที่ถูกฝัง #2: CalendarTruthFileMigrationInProgress ไฟล์
  • อัปเกรดและรวมปฏิทินเดิมเข้ากับฐานข้อมูลใหม่
ไฟล์ที่ถูกฝัง #3: CalPoCInit.dmg
  • การแจ้งเตือนที่อยู่ในอีเวนต์ปฏิทินจะเปิดไฟล์นี้
  • CalPoCInit.dmg มีการอ้างอิงที่ชี้ไปยังเซิร์ฟเวอร์ Samba ภายนอก
ไฟล์ที่ถูกฝัง #4: stage1.url
  • การแจ้งเตือนลำดับที่สองในอีเวนต์ปฏิทินจะเปิดไฟล์นี้
  • มี URL ที่ชี้ไปยังแอปพลิเคชันบน Samba mount
ไฟล์ที่ถูกฝัง #5: stage2.url
  • การแจ้งเตือนลำดับที่สามในอีเวนต์ปฏิทินจะเปิดไฟล์นี้
  • รันแอปพลิเคชันอันตรายโดยไม่ต้องมีการโต้ตอบจากผู้ใช้

ขั้นที่ 3: เข้าถึงข้อมูล Photos ที่ละเอียดอ่อน

  • สามารถเข้าถึงรูปภาพที่เก็บไว้ใน iCloud ได้ด้วยการเปลี่ยนการกำหนดค่าของ Photos
  • สามารถหลบเลี่ยงการป้องกัน TCC เพื่อขโมยข้อมูลผู้ใช้ที่ละเอียดอ่อนได้

การเข้าถึงไฟล์ iCloud ผ่านการเปลี่ยนการกำหนดค่า Photos

  • ผู้โจมตีสร้างไฟล์กำหนดค่าที่ตั้งค่า System Photo Library ของ Photos ให้เป็นพาธอื่น
  • เมื่อรัน PhotosPoC.sh จะมีการนำเข้าไฟล์กำหนดค่าใหม่
  • การกำหนดค่าเดิมจะถูกสำรองไว้ และการกำหนดค่าใหม่จะถูกเก็บไว้ที่ /var/tmp/mypictures/
  • เปิด Photos ด้วย System Photo Library ใหม่และเปิดใช้งานการซิงก์ iCloud

เชนทั้งหมด

  • ต้องผ่านหลายขั้นตอนเพื่อเอาชนะอุปสรรคด้านความปลอดภัยทั้งหมดของ macOS
  • หลบเลี่ยงแซนด์บ็อกซ์ และใช้กลอุบาย SMB เพื่อหลบเลี่ยงมาตรการบรรเทา Gatekeeper
  • หลบเลี่ยงการป้องกัน TCC เพื่อเข้าถึงข้อมูลที่ละเอียดอ่อน

ไทม์ไลน์

  • 2022-08-08: รายงานการเขียนและลบไฟล์ตามอำเภอใจจากแซนด์บ็อกซ์ของ Calendar
  • 2022-10-24: แก้ไขแล้วใน macOS Monterey 12.6.1 และ Ventura 13
  • 2022-11-14: ส่ง PoC วิธีการรันโค้ดตามอำเภอใจโดยใช้ช่องโหว่ Calendar
  • 2022-12-04: ส่ง PoC วิธีเข้าถึงรูปภาพ iCloud
  • 2023-02-20: เพิ่มเครดิตและ CVE สำหรับ CVE-2022-46723
  • 2023-03-27: แก้ไขการหลบเลี่ยง Gatekeeper ใน macOS Ventura 13.3
  • 2023-09-26: แก้ไขช่องโหว่ Photos CVE-2023-40434 และเพิ่มเครดิต
  • 2023-10-09: ประกาศ bug bounty ที่เกี่ยวข้องกับการหลบเลี่ยง Gatekeeper และช่องโหว่ Photos
  • 2023-12-21: ให้เครดิต CVE-2023-40433 สำหรับการหลบเลี่ยง Gatekeeper

สรุปโดย GN⁺

  • บทความนี้กล่าวถึงช่องโหว่ zero-click ใน macOS Calendar และอธิบายวิธีที่ผู้โจมตีสามารถใช้มันเพื่อเข้าถึงข้อมูล iCloud Photos ที่ละเอียดอ่อนของผู้ใช้
  • เชนช่องโหว่นี้ต้องผ่านหลายขั้นตอน โดยหลบเลี่ยงแซนด์บ็อกซ์ รวมถึงการป้องกันของ Gatekeeper และ TCC เพื่อให้สามารถรันโค้ดจากระยะไกลและเข้าถึงข้อมูลที่ละเอียดอ่อนได้
  • บทความนี้ให้ข้อมูลสำคัญสำหรับนักวิจัยด้านความปลอดภัยและผู้ใช้ macOS พร้อมเน้นย้ำว่า Apple ได้แก้ไขช่องโหว่เหล่านี้แล้ว
  • โครงการอื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ แอปปฏิทินอื่น ๆ เช่น Google Calendar

1 ความคิดเห็น

 
GN⁺ 2024-09-14
ความคิดเห็นจาก Hacker News
  • หากบริษัทยักษ์ใหญ่ด้านเทคโนโลยีไม่จ่ายเงินรางวัล ก็มีโอกาสสูงว่าจะมีเหตุผลที่สมควร

    • โปรแกรมเงินรางวัลถูกออกแบบมาเพื่อจ่ายรางวัลให้กับการส่งรายงานที่ถูกต้อง
    • การไม่จ่ายเงินรางวัลขัดกับเป้าหมายของโปรแกรม
    • ทีมที่ดูแลโปรแกรมมักถูกผลักดันให้จ่ายรางวัลมากขึ้น
  • ไม่ได้ใช้ iCloud Photo Library แต่ก็น่าแปลกที่เมื่อเปลี่ยนตำแหน่งของคลังรูปภาพ ตำแหน่งใหม่กลับไม่ได้รับการปกป้อง

    • หลังจากเปลี่ยน System Photo Library แล้ว แอป Photos ควรปกป้องไดเรกทอรีนั้น
    • ทดสอบบนระบบ Sonoma 14.6.1 แล้ว หากสร้างคลังรูปภาพใหม่ใน ~ /Pictures จะถูกปฏิเสธการเข้าถึง
    • แต่ถ้าสร้างใน /tmp จะได้รับอนุญาตให้เข้าถึง
    • หาก Apple รองรับความสามารถในการย้ายคลังรูปภาพไปที่ใดก็ได้ในระบบไฟล์ ก็ควรใช้การป้องกันที่เหมาะสม
  • ยังมีอีกวิธีหนึ่งในการจัดการ quarantine flag

    • มีระบบมากเกินไปที่สามารถแก้ไขแฟล็กเหล่านี้ได้
  • แค่ขั้นตอนแรกก็เป็นช่องโหว่ร้ายแรงแล้ว

    • ผู้โจมตีสามารถทำ directory traversal ได้โดยกำหนดพาธตามอำเภอใจในส่วน ATTACH
  • ผู้โจมตีสามารถขโมย iCloud Photos ของเหยื่อได้ผ่านคำเชิญปฏิทินที่เป็นอันตราย

    • สงสัยว่าผู้ใช้ macOS สามารถส่งคำเชิญแบบสุ่มให้ใครก็ได้หรือไม่
  • หากไฟล์ที่ผู้โจมตีกำหนดมีอยู่แล้ว จะถูกบันทึกเป็น "PoC.txt-2"

    • ภายหลังเมื่ออีเวนต์/ไฟล์แนบถูกลบ ไฟล์ต้นฉบับจะถูกลบออก
    • ช่องโหว่นี้สามารถใช้เพื่อลบไฟล์ที่มีอยู่เดิมในระบบไฟล์ได้
  • ไม่ชอบสถานะของเงินรางวัลนี้เลย

    • สงสัยว่าสำหรับนักวิจัยด้านความปลอดภัย การต้องรอนานขนาดนี้จาก Apple หรือบริษัท FAANG อื่น ๆ เป็นเรื่องปกติหรือไม่
  • รู้สึกตื่นเต้นทุกครั้งที่เกิดช่องโหว่ด้านความปลอดภัยที่ไม่เกี่ยวกับ memory safety

    • ชวนให้สะใจเมื่อนึกว่าทั้งเวลาและพลังงานที่ทุ่มให้ Rust อาจสูญเปล่าเพราะบั๊ก path traversal
  • สงสัยว่า Lockdown Mode ป้องกันสิ่งนี้ได้หรือไม่

  • เป็นเอ็กซ์พลอยต์ที่ค่อนข้างเก่า

    • จำได้ว่าเคยอ่านเรื่องการมีพาธอยู่ในชื่อไฟล์เมื่อราว 10 ปีก่อน