CVE-2026-120859 CVSS 7.8 — HIGH other เผยแพร่: 2026-11-05

ช่องโหว่ PHP Object Injection / Insecure Deserialization ใน ซอฟต์แวร์ที่มีช่องโหว่ — CVE-2026-120859 (CVSS 7.8)

⚠️ CRITICAL ระดับสูง (CVSS 7.8) — แก้ไขทันที PHP Object Injection อาจนำไปสู่ RCE ได้โดยตรง

📋 สรุปช่องโหว่

ช่องโหว่ PHP Object Injection ถูกค้นพบในซอฟต์แวร์ที่มีช่องโหว่ โดยมี CVSS Score สูงถึง 7.8 ระดับ "สูง" ซึ่งเป็นระดับที่อันตรายมากและต้องแก้ไขโดยเร่งด่วน

ช่องโหว่นี้เกิดจากการที่ PHP ใช้ฟังก์ชัน unserialize() กับข้อมูลที่ผู้ใช้ควบคุมได้โดยไม่ผ่านการตรวจสอบ ผู้โจมตีสามารถสร้าง serialized object อันตรายและส่งผ่านพารามิเตอร์ที่เปิดช่องให้โจมตีได้ เมื่อ PHP ทำการ unserialize วัตถุนั้น จะมีการเรียก magic methods เช่น __wakeup() หรือ __destruct() ที่อาจถูก chain เพื่อรัน PHP code ใดๆ ก็ได้

ในกรณีของซอฟต์แวร์ที่มีช่องโหว่ ผู้โจมตีอาจไม่จำเป็นต้องล็อกอิน สามารถส่ง payload อันตรายผ่าน parameter ที่ระบุในช่องโหว่ และอาจได้รับ Remote Code Execution (RCE) ซึ่งเป็นผลกระทบที่ร้ายแรงที่สุด

💥 ผลกระทบที่อาจเกิดขึ้น

PHP Object Injection มีความร้ายแรงสูงมาก ผลกระทบที่เป็นไปได้:

• Remote Code Execution (RCE): หาก POP chain ที่เหมาะสมมีอยู่ใน codebase ผู้โจมตีสามารถรันคำสั่งใดๆ บนเซิร์ฟเวอร์
• ลบ/แก้ไขไฟล์: ผ่าน magic method สามารถ write หรือ delete ไฟล์ใดๆ บนระบบ
• SQL Injection ขั้นสอง: inject SQL ผ่าน object property ที่ถูกนำไป query
• ขโมย Credentials: อ่านไฟล์ config ที่มี database password, secret keys
• Server Takeover สมบูรณ์: ในกรณีที่มี POP chain ที่สมบูรณ์
• Bypass Authentication: ใช้ object injection เพื่อเปลี่ยนค่า session หรือ permission

🖥️ ซอฟต์แวร์และระบบที่ได้รับผลกระทบ

ตรวจสอบที่ https://nvd.nist.gov/vuln/detail/CVE-2026-120859

🔧 แนวทางการแก้ไขและป้องกัน

  • ขั้นตอนแก้ไขเร่งด่วน:
  • 1. อัพเดตทันที: อัพเดตซอฟต์แวร์เป็นเวอร์ชันล่าสุดที่แก้ไขช่องโหว่แล้ว
  • 2. ปิด Plugin ชั่วคราว: หากยังไม่มี patch ให้ปิดใช้งาน plugin เพื่อป้องกันการโจมตีในระหว่างรอ
  • 3. ตรวจสอบ Logs: ค้นหา request ที่มี serialized PHP object (เริ่มด้วย O: หรือ a:) ใน access log
  • 4. WAF Rule: เพิ่ม rule ใน Wordfence หรือ Cloudflare WAF เพื่อ block serialized PHP payload
  • 5. ตรวจสอบ Web Shell: ค้นหาไฟล์ .php ที่ถูกสร้างขึ้นใหม่ใน upload directories หรือ theme folders
  • 6. เปลี่ยน Secret Keys: เปลี่ยน WordPress secret keys และ salts ใน wp-config.php
  • 7. เปลี่ยน DB Password: อัพเดต database password เพื่อป้องกันกรณีที่ถูก read ไปแล้ว
  • 8. Scan ด้วย Security Plugin: ใช้ Wordfence หรือ Sucuri scan หาร่องรอยการบุกรุก

📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)

PyMoDAQ before 4.4.13, and pymodaq_data, pymodaq_gui, and pymodaq_utils before 5.1.15, 5.2.x before 5.2.14, and 5.3.x before 5.3.10, contain deserialization of untrusted data and eval injection vulnerabilities that allow attackers to execute arbitrary code by supplying crafted files that a user opens. Attackers can store pickled objects in HDF5 string nodes that StringARRAY.array_to_string() passes to pickle.loads() when the node is browsed or read, place Python expressions in HDF5 attributes that JsonConverter.json2object() evaluates, supply a .dock file that load_layout_state() unpickles from the Dashboard Load layout action, or embed Python expressions in XML settings files that elt_to_dict() and set_txt_from_elt() evaluate.

🔗 แหล่งอ้างอิง