
พบช่องโหว่ด้านความปลอดภัยระดับ Critical ใน Cursor ซึ่งเป็นเครื่องมือแก้ไขโค้ดที่ขับเคลื่อนด้วย AI ที่กำลังได้รับความนิยมบน macOS โดยช่องโหว่นี้ทำให้มัลแวร์สามารถหลบเลี่ยงระบบป้องกันความเป็นส่วนตัวของ Apple และเข้าถึงข้อมูลที่มีความสำคัญของผู้ใช้งานได้ โดยไม่ได้รับอนุญาตอย่างถูกต้อง
ช่องโหว่นี้เกิดจากการกำหนดค่าที่ผิดพลาดในเฟรมเวิร์ก Electron ของแอปพลิเคชัน โดยเฉพาะการเปิดใช้งาน RunAsNode fuse ซึ่งเป็นคุณสมบัติที่ช่วยให้สามารถรันโค้ดได้ตามต้องการด้วยสิทธิ์ของแอปที่ได้รับอนุญาตไว้แล้ว
ช่องโหว่นี้ส่งผลกระทบอย่างร้ายแรงต่อระบบ Transparency, Consent และ Control (TCC) ของ Apple ที่นำมาใช้เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้งานบนระบบ macOS
TCC ทำหน้าที่เป็นกลไกควบคุมหลักที่ควบคุมการเข้าถึงแอปพลิเคชันไปยังทรัพยากรที่มีความสำคัญ รวมถึงไฟล์ในไดเร็กทอรีที่ได้รับการป้องกัน เช่น Documents, Downloads และ Desktop folders ตลอดจน components ของฮาร์ดแวร์ เช่น กล้อง และไมโครโฟน

ภายใต้สถานการณ์ปกติ แอปพลิเคชันจะต้องขออนุญาตจากผู้ใช้ผ่านหน้าต่างแจ้งเตือนของระบบ ก่อนที่จะสามารถเข้าถึงทรัพยากรที่ได้รับการปกป้องเหล่านี้ได้
นักวิจัยด้านความปลอดภัยจาก Afine พบช่องโหว่นี้ระหว่างการศึกษาวิจัยอย่างต่อเนื่องเกี่ยวกับ เทคนิค TCC bypass ที่ส่งผลกระทบต่อแอปพลิเคชัน macOS ของบริษัทอื่น
นักวิจัยระบุว่า แม้จะเปิดเผยข้อมูลไปยังทีมพัฒนาของ Cursor แล้ว แต่ช่องโหว่ดังกล่าวยังไม่ได้รับการแก้ไข โดยทีมพัฒนาให้เหตุผลว่า ปัญหานี้อยู่นอกเหนือจากขอบเขตภัยคุกคามที่พวกเขาพิจารณาไว้ และยังไม่มีแผนในการแก้ไข
การตอบสนองโดยการเพิกเฉยนี้ ทำให้นักวิจัยตัดสินใจเปิดเผยช่องโหว่ต่อสาธารณะ เพื่อให้ผู้ใช้สามารถตัดสินใจด้านความปลอดภัยเกี่ยวกับการใช้งานแอปพลิเคชันต่อไป
ผลกระทบของช่องโหว่นี้ขยายออกไปไกลเกินกว่าแค่การเข้าถึงข้อมูล เนื่องจากช่องโหว่นี้ส่งผลกระทบต่อระบบรักษาความปลอดภัยพื้นฐานของ macOS ด้วย
เมื่อมัลแวร์ใช้ประโยชน์จากช่องโหว่นี้ได้สำเร็จ มันสามารถได้สิทธิ์การเข้าถึง TCC ของ Cursor ได้อย่างเงียบ ๆ ซึ่งอาจทำให้สามารถเข้าถึงเอกสารที่มีความสำคัญ, ถ่ายภาพหน้าจอ, บันทึกเสียงจากไมโครโฟน หรือแม้แต่เปิดใช้งานกล้องโดยไม่ปรากฏหน้าต่างขอสิทธิ์ใด ๆ ตามปกติที่ระบบควรแจ้งเตือนผู้ใช้
รูปแบบการโจมตีมีได้ตั้งแต่การโจมตีแบบเงียบ ๆ ที่ไม่ต้องการการโต้ตอบจากผู้ใช้ ไปจนถึงเทคนิค Social Engineering ที่มีความซับซ้อน เพื่ออำพราง permission requests ที่เป็นอันตรายให้เป็นฟังก์ชันแอปพลิเคชันที่ดูถูกต้องตามปกติ
สิ่งที่ทำให้ช่องโหว่นี้น่ากังวลเป็นพิเศษคือ ความนิยมที่เพิ่มขึ้นของ Cursor ในกลุ่มนักพัฒนา และการที่แอปนี้ผสานเข้ากับกระบวนการพัฒนาซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ซึ่งทำให้แอปกลายเป็นเป้าหมายที่น่าสนใจสำหรับผู้โจมตีที่ต้องการแทรกโค้ดอันตรายเข้าไปใน software projects
กลไกทางเทคนิคในการโจมตี
ช่องโหว่นี้เกิดจากการกำหนดค่าของ Cursor ให้เป็นแอปพลิเคชัน Electron พร้อมเปิดใช้งานคุณสมบัติที่เรียกว่า RunAsNode fuse ซึ่งเป็นการตั้งค่าที่อนุญาตให้เรียกใช้แอปพลิเคชันเป็น Node.js process

จากการวิเคราะห์ด้านความปลอดภัยพบว่า การกำหนดค่านี้สามารถตรวจสอบได้โดยใช้คำสั่ง npx @electron/fuses read --app "/Applications/Cursor.app/Contents/MacOS/Cursor" ผลลัพธ์จะแสดงว่า RunAsNode is Enabled อยู่ในค่า fuse ของแอปพลิเคชัน
ผู้โจมตีสามารถใช้ประโยชน์จากการกำหนดค่าที่ไม่ถูกต้องนี้ได้โดยการกำหนดค่า Launch Agent ที่เป็นอันตราย ซึ่งใช้ประโยชน์จาก ELECTRON_RUN_AS_NODE environment variable
การโจมตีทั่วไปจะเกี่ยวข้องกับการวางไฟล์ .plist ที่ออกแบบมาเป็นพิเศษลงในไดเรกทอรี ~/Library/LaunchAgents/ ของผู้ใช้ ซึ่งจะเรียกใช้โค้ด JavaScript ที่ต้องการผ่านไบนารีของ Cursor
ตัวอย่างเช่น มัลแวร์สามารถใช้แนวทางต่อไปนี้เพื่อเข้าถึงโฟลเดอร์ Documents ที่ได้รับการป้องกัน:
โดย Launch Agent จะเรียกใช้งานคำสั่ง /Applications/Cursor.app/Contents/MacOS/Cursor ตามด้วย -e ตามด้วย JavaScript ที่เป็นอันตราย เช่น require('child_process').execSync('ls -la $HOME/Documents > /tmp/Documents.txt 2>&1')
เทคนิคนี้จะเปลี่ยน Cursor ให้กลายเป็นพร็อกซีสำหรับปฏิบัติการอันตรายโดยไม่ตั้งใจ เนื่องจากระบบ macOS จะมองว่า การดำเนินการทั้งหมดมีต้นทางมาจากแอปพลิเคชันที่ถูกต้องตามปกติ ไม่ใช่จากมัลแวร์ภายนอก
การใช้ช่องโหว่นี้สามารถเกิดขึ้นได้ใน 2 สถานการณ์ คือ vanilla attack ที่ไม่ต้องการการโต้ตอบจากผู้ใช้ เมื่อ Cursor มีสิทธิ์ TCC อยู่แล้ว และการโจมตีแบบ spoofing ที่แสดง permission requests ปลอมที่ดูเหมือนว่ามาจาก Cursor เอง ซึ่งจะเพิ่มโอกาสในการอนุมัติจากผู้ใช้
ที่มา : cybersecuritynews

You must be logged in to post a comment.