โปรดอัพเดตเบราว์เซอร์

เบราว์เซอร์ที่คุณใช้เป็นเวอร์ชันเก่าซึ่งไม่สามารถใช้บริการของเราได้ เราขอแนะนำให้อัพเดตเบราว์เซอร์เพื่อการใช้งานที่ดีที่สุด

ไอที

พบช่องโหว่บนฟังก์ชัน extract() ของ PHP ส่งผลให้แฮกเกอร์สามารถรันโค้ดแบบตามใจชอบได้

Thaiware

อัพเดต 03 พ.ค. 2568 เวลา 05.30 น. • เผยแพร่ 03 พ.ค. 2568 เวลา 05.30 น. • Sarun_ss777
ฟังก์ชันดังกล่าวจะนำไปสู่การจัดการหน่วยความจำของ PHP เปิดช่องให้แฮกเกอร์รันโค้ดของตนบนหน่วยความจำได้

เครื่องมือสำหรับการสร้างเว็บไซต์และจัดการด้านระบบเครือข่ายที่ได้รับความนิยมนั้น หนึ่งในนั้นคงหนีไม่พ้น PHP แต่เครื่องมือดังกล่าวนี้ก็มีจุดอ่อน และช่องโหว่มากมายให้แฮกเกอร์นำไปใช้งานได้เช่นเดียวกัน

จากรายงานโดยเว็บไซต์ Cyber Security News ได้กล่าวถึงการตรวจพบช่องโหว่บนฟังก์ชันของ PHP เวอร์ชัน 5.x, 7.x และ 8.x โดยฟังก์ชันที่เป็นประเด็นอยู่นั้นเป็นฟังก์ชันด้านการจัดการหน่วยความจำ (Memory Management) ที่มีชื่อว่า extract() โดยเฉพาะอย่างยิ่งเมื่อฟังก์ชันดังกล่าวถูกใช้งานร่วมกับ EXTR_REFS

พบช่องโหว่บนฟังก์ชัน extract() ของ PHP ส่งผลให้แฮกเกอร์สามารถรันโค้ดแบบตามใจชอบได้

ภาพจาก : https://cybersecuritynews.com/php-extract-function-vulnerability/

สำหรับการทำงานของฟังก์ชันตัวนี้ที่เป็นปัญหาอยู่นั้น ตัวฟังก์ชันจะทำการนำเข้า Array จากตารางสัญลักษณ์ (Symbol Table) ซึ่งในส่วนตรงนี้แฮกเกอร์นั้นจะสามารถบงการเพื่อนำไปสู่สถานภาพ (Condition) ของหน่วยความจำที่เอื้ออำนวยต่อการแฮกได้ ซึ่งเมื่อฟังก์ชัน extract() ทำการประมวลตัวแปรของ PHP Object ที่ถูกระบุด้วยวิธีการ destruct() เรียบร้อย ช่องโหว่ดังกล่าวจะทำงานด้วยการนำตัวระบบไปสู่ Race Condition (สภาพการทำงานที่ซ้ำซ้อน) จากนั้นแฮกเกอร์ก็จะใช้วิธีการ destruct() ในการปลดตัวแปรต่าง ๆ ที่ทำงานบน extract() ซึ่งจะนำไปสู่ช่องโหว่ที่เอื้ออำนวยให้แฮกเกอร์ทำการรันโค้ดโดยไม่ได้รับอนุญาตได้ ซึ่งช่องโหว่จะแตกต่างกันไปตามเวอร์ชันของ PHP ดังนี้

  • Double-Free Condition : ช่องโหว่ที่เกิดจากตัวโปรแกรมทำการคลายการใช้งานหน่วยความจำที่ซ้ำซ้อนกันถึง 2 ครั้ง บน PHP เวอร์ชัน 5.x
  • Use-after-Free : ช่องโหว่ที่เกิดขึ้นจากหน่วยความจำที่ถูกใช้งานโดยแอปพลิเคชันถูกคลายออกมา บน PHP เวอร์ชัน 7.x และ 8.x

ซึ่งเมื่อเกิดช่องโหว่ดังกล่าวขึ้นมาแล้ว แฮกเกอร์จะปฏิบัติตามขั้นตอนดังนี้เพื่อรันโค้ดที่ไม่ได้รับอนุญาต ตามขั้นตอนดังต่อไปนี้

  • ใช้ช่องโหว่ดังกล่าวเข้าจัดการในส่วนของการจัดการปันส่วนหน่วยความจำ (Memory Allocation) โดยจัดการให้เกิดโครงสร้างหน่วยความจำแบบทับซ้อน (Overlapping Memory Structures) ขึ้นมา
  • สั่งการให้เกิดการเปิดเผยที่อยู่ของส่วนหน่วยความจำที่สำคัญยิ่งยวดของ PHP เช่น executor_globals
  • ทำการค้นหาฟังก์ชันบนหน่วยความจำที่ถูกปิดใช้งานอยู่ เช่น system()
  • ท้ายสุด ทำการสั่งเปิดฟังก์ชันที่ถูกปิดใช้งานทั้งหมด พร้อมทั้งเขียนทับเพื่อแก้ไขโครงสร้างของหน่วยความจำแบบยกเครื่องใหม่

ในปัจจุบันนั้นทางทีมงานผู้พัฒนา PHP ได้รับทราบถึงปัญหาดังกล่าวเรียบร้อยแล้ว แต่ยังไม่ได้มีการออกอัปเดตมาเพื่อจัดการกับปัญหาดังกล่าว ณ ขณะนี้ โดยทางแหล่งข่าวได้แนะนำวิธีการจัดการกับปัญหาแค่เพียงว่า ให้อัปเดต PHP ขึ้นเป็นรุ่นล่าสุดเสียก่อนสำหรับผู้ใช้งานในเวอร์ชันที่เป็นประเด็น รวมทั้งมีความระมัดระวังในการใช้ฟังก์ชัน extract() อย่างยิ่งยวด

➤ Website : https://www.thaiware.com
➤ Facebook : https://www.facebook.com/thaiware
➤ Twitter : https://www.twitter.com/thaiware
➤ YouTube : https://www.youtube.com/thaiwaretv

ดูข่าวต้นฉบับ
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...