คำแนะนำด้านความปลอดภัยสำหรับไลบรารีมาตรฐานของ Rust (CVE-2024-24576)
(blog.rust-lang.org)มีการเผยแพร่คำแนะนำด้านความปลอดภัยสำหรับไลบรารีมาตรฐานของ Rust โดยเกี่ยวข้องกับช่องโหว่ที่ระบุเป็น CVE-2024-24576 และเกิดจากปัญหาการ escape อาร์กิวเมนต์ไม่เหมาะสมโดยเฉพาะเมื่อเรียกไฟล์แบตช์ที่มีนามสกุล .bat หรือ .cmd บน Windows ผ่าน Command API
หากผู้โจมตีสามารถควบคุมอาร์กิวเมนต์ที่ถูกส่งไปยังกระบวนการที่ถูกสร้างขึ้นได้ ก็อาจหลบเลี่ยงการ escape และรันคำสั่งเชลล์ตามอำเภอใจได้ ช่องโหว่นี้มีความสำคัญเฉพาะกรณีที่มีการเรียกไฟล์แบตช์บน Windows ด้วยอาร์กิวเมนต์ที่ไม่น่าเชื่อถือเท่านั้น แพลตฟอร์มอื่นหรือกรณีใช้งานอื่นไม่ได้รับผลกระทบ
สาเหตุหลักของปัญหาคือบน Windows นั้น cmd.exe (ซึ่งใช้สำหรับรันไฟล์แบตช์) มีตรรกะการแยกอาร์กิวเมนต์เป็นของตัวเอง ทำให้ไลบรารีมาตรฐานต้องทำการ escape แบบกำหนดเองสำหรับอาร์กิวเมนต์ที่ส่งไปยังไฟล์แบตช์ ตามรายงานพบว่าตรรกะการ escape นี้รัดกุมไม่เพียงพอ จึงเปิดช่องให้ส่งอาร์กิวเมนต์ที่เป็นอันตรายเพื่อรันเชลล์ตามอำเภอใจได้
ได้รับความช่วยเหลือจาก AI
3 ความคิดเห็น
พอเป็นปัญหาเรื่องการ escape บน Windows ก็เลยรู้สึกว่าเป็นไปได้เหมือนกันนะ
ดูคล้ายกับช่องโหว่ของ WinRAR ก่อนหน้านี้นะครับ ใช้วิธีการรันไฟล์แบตช์ของ Windows และข้อจำกัดในการตั้งชื่อไฟล์
เหมือนอย่างเคยเลย โลกนี้ไม่มีอะไรง่ายจริง ๆ ฮือฮือ