ช่องโหว่ PHP Object Injection / Insecure Deserialization ใน ซอฟต์แวร์ที่มีช่องโหว่ — CVE-2026-115731 (CVSS 9.4)
📋 สรุปช่องโหว่
ช่องโหว่ PHP Object Injection ถูกค้นพบในซอฟต์แวร์ที่มีช่องโหว่ โดยมี CVSS Score สูงถึง 9.4 ระดับ "วิกฤต" ซึ่งเป็นระดับที่อันตรายมากและต้องแก้ไขโดยเร่งด่วน
ช่องโหว่นี้เกิดจากการที่ 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-115731
🔧 แนวทางการแก้ไขและป้องกัน
- ขั้นตอนแก้ไขเร่งด่วน:
- 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 หาร่องรอยการบุกรุก
📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)
Deserialization of untrusted data in the report-processing code of Puppet, as used by Puppet Server, in the affected releases, allows a client that holds any CA-signed agent certificate to execute arbitrary code on the Puppet Server as its service user by submitting a report containing a crafted rich-data type via PUT request. Where the certificate authority autosigns requests without strong verification, an unauthenticated network attacker can obtain such a certificate.