พบช่องโหว่ PHP Deserialization ใน WordPress และ Typo3

Sam Thomas นักวิจัยด้านความปลอดภัยจาก Secarma ได้ออกมาเผยแพร่เกี่ยวกับช่องโหว่ PHP unserialization หรือ object injection ช่องโหว่นี้ทำให้ Hacker สามารถทำการรันโค้ดจากระยะไกล

ช่องโหว่นี้เกิดจาก Phar files ที่เขียนในรูปแบบ PHP ทำการเก็บ metadata ในรูปแบบ serialized ซึ่งจะทำการ unserialized ก็ต่อเมื่อฟังก์ชันก์ file operation เช่น fopen, file_exists, file_get_contents และอื่นๆ พยายามเข้าถึงที่เก็บไฟล์ที่เก็บถาวร (archive file) Hacker จะใช้ประโยชน์จาก Phar files นี้ ทำการโจมตีแบบเรียกอ่านและแปลงกลับ (deserialization) โดยไม่ต้องใช้ฟังก์ชัน unserialize()

php&wordpress
ที่มาภาพ The Hacker News

นอกจากนี้ Thomas ยังบอกอีกว่า Hacker สามารถใช้ประโยชน์จากช่องโหว่นี้ได้ จากการใช้ภาพ JPEG ซึ่งเดิมทีเป็นไฟล์ Phar แล้วถูกแปลงเป็นไฟล์ JPEG ซึ่งช่องโหว่นี้เกิดจากการส่งข้อมูล deserialization ที่ไม่ปลอดภัยในรูปแบบไฟล์รูปภาพ จากนั้นทำการรัน ‘phar://’ ผ่าน stream wrapper ในฟังก์ชัน ‘wp_get_attachment_thumb_file’ ที่อยู่ในสคริปต์ ‘/wpincludes/post.php’ Hacker จะใช้ประโยชน์จากช่องโหว่นี้ทำการสร้าง/แก้ไขโพสต์ อัปโหลดรูปภาพที่เป็นอันตราย และรันโค้ด PHP ที่เป็นอันตรายจากระยะไกลได้

Thomas ได้รายงานการค้นพบนี้ต่อ WordPress ไปแล้วเมื่อปี 2552 แต่แพทช์ที่ออกมานั้นยังไม่สามารถแก้ไขปัญหานี้ได้อย่างสมบูรณ์ ส่วนทาง Typo3 นั้นได้รายงานไปเมื่อวันที่ 9 มิ.ย. 2561 สำหรับ version ที่มีผลกระทบได้แก่ version 7.6.30, 8.7.17 และ 9.3

สำหรับรายละเอียดเพิ่มเติมดูได้จาก รายงานของ Secarma

ที่มา The Hacker News