- พบช่องโหว่แบบ 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
หากบริษัทยักษ์ใหญ่ด้านเทคโนโลยีไม่จ่ายเงินรางวัล ก็มีโอกาสสูงว่าจะมีเหตุผลที่สมควร
ไม่ได้ใช้ iCloud Photo Library แต่ก็น่าแปลกที่เมื่อเปลี่ยนตำแหน่งของคลังรูปภาพ ตำแหน่งใหม่กลับไม่ได้รับการปกป้อง
ยังมีอีกวิธีหนึ่งในการจัดการ quarantine flag
แค่ขั้นตอนแรกก็เป็นช่องโหว่ร้ายแรงแล้ว
ผู้โจมตีสามารถขโมย iCloud Photos ของเหยื่อได้ผ่านคำเชิญปฏิทินที่เป็นอันตราย
หากไฟล์ที่ผู้โจมตีกำหนดมีอยู่แล้ว จะถูกบันทึกเป็น "PoC.txt-2"
ไม่ชอบสถานะของเงินรางวัลนี้เลย
รู้สึกตื่นเต้นทุกครั้งที่เกิดช่องโหว่ด้านความปลอดภัยที่ไม่เกี่ยวกับ memory safety
สงสัยว่า Lockdown Mode ป้องกันสิ่งนี้ได้หรือไม่
เป็นเอ็กซ์พลอยต์ที่ค่อนข้างเก่า