นักวิจัยได้เผยแพร่เครื่องมือที่ใช้สำหรับการโจมตีช่องโหว่ Remote Code Execution (RCE) ที่ส่งผลกระทบต่อ ReportLab Toolkit ซึ่งเป็น Python library ยอดนิยมที่หลาย project ใช้เพื่อสร้างไฟล์ PDF จากอินพุต HTML
Proof-of-Concept (PoC) สำหรับ CVE-2023-33733 ถูกเผยแพร่เมื่อวานนี้ (30 พฤษภาคม 2023) บน GitHub พร้อมกับรายละเอียดทางเทคนิคเกี่ยวกับช่องโหว่ ซึ่งเป็นการเพิ่มโอกาสให้ผู้ไม่หวังดีสามารถใช้ประโยชน์จากช่องโหว่ดังกล่าว
ReportLab Toolkit ถูกใช้โดยหลาย project สำหรับเป็น PDF library และมีการดาวน์โหลดไปแล้วประมาณ 3.5 ล้านครั้งต่อเดือนบน PyPI (Python Package Index)
Bypass การแก้ไขช่องโหว่ครั้งก่อน
โดยช่องโหว่เกิดจากการสามารถ bypass ข้อจำกัดของ sandbox ใน 'rl_safe_eval' ซึ่งมีหน้าที่ป้องกันการเรียกใช้โค้ดที่เป็นอันตราย ทำให้ผู้โจมตีเข้าถึงฟังก์ชันของ Python ที่อาจเป็นอันตรายได้
ฟังก์ชัน 'rl_safe_eval' ถูกนำมาใช้เป็นมาตรการเพื่อป้องกันช่องโหว่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกลในลักษณะคล้ายกัน ซึ่งถูกค้นพบในปี 2019 ดังนั้นนักวิจัยจึงมุ่งเน้นไปที่การ bypass ฟังก์ชันดังกล่าว
PoC ที่ถูกเผยแพร่จะดึงฟังก์ชัน 'type' ที่สร้างขึ้นมาเพื่อช่วยสร้างคลาสใหม่ที่ชื่อว่า 'Word' ซึ่งสืบทอดมาจากคลาส 'str' ซึ่งสามารถหลีกเลี่ยงการตรวจสอบด้านความปลอดภัย และให้สิทธิ์เข้าถึงแอตทริบิวต์ที่มีความสำคัญ เช่น 'code' ได้
จากนั้น 'type' จะถูกเรียกใช้ในตัวมันเองเพื่อเลี่ยงการตรวจสอบ eval ที่เกี่ยวกับข้อจำกัดจำนวนอาร์กิวเมนต์ ทำให้ผู้โจมตีสามารถใช้ฟังก์ชัน 'type' เดิมที่ติดตั้งไว้สำหรับการสร้างคลาส และอ็อบเจ็กต์ใหม่ได้
จึงนำไปสู่การสร้างฟังก์ชันที่เป็นอันตรายจาก bytecode ของฟังก์ชันที่คอมไพล์ ซึ่งอาจทำให้สามารถรันโค้ดได้ตามที่ต้องการ โดยจาก PoC ของนักวิจัย จะทำการเรียกคำสั่งบน OS เพื่อสร้างไฟล์ชื่อ 'exploited' ในไดเร็กทอรี "/tmp/"
Elyas Damej นักวิจัยของ Cure53 แจ้งเตือนในรายงานว่า การใช้ประโยชน์จากช่องโหว่ CVE-2023-33733 ทำได้ง่ายมาก เพียงแค่ใส่โค้ดที่เป็นอันตรายไว้ในไฟล์ HTML ซึ่งจะถูกแปลงเป็น PDF บนซอฟต์แวร์ที่ใช้ไลบรารี ReportLab
คำแนะนำ
ช่องโหว่ส่งผลกระทบต่อไลบรารีเวอร์ชันก่อนหน้านี้ทั้งหมด
ทำการอัปเดตเป็นเวอร์ชัน 3.6.13
ที่มา : bleepingcomputer